Неправильная практика добавления дополнительных атрибутов в элементы html?
Иногда я добавляю атрибут к некоторым элементам управления. Как:
<a href id="myLlink" isClimber="True">Chris Sharma</a>
Я знаю, что это не действительный html. Но это помогает мне в некоторых случаях.
Это считается плохой практикой? Мой друг говорит, что это нормально для среды интрасети, но в Интернете он не может быть дружественным поисковыми системами.
Если это не хорошая практика, то какая из лучших практик?
Спасибо
Ответы
Ответ 1
Да. Это считается плохой практикой. Ваш HTML (если он 4.0) не будет успешно проверен. Вместо этого добавьте такой класс:
<a href id="myLlink" class="climber" >...</a>
Помните, что вы можете иметь несколько классов:
<a href id="myLlink" class="climber girl pretty" >...</a>
И вы можете использовать CSS или JQuery для выбора материала на основе этих классов и выборочного переопределения стиля на основе комбинаций:
a.climber { color: brown; }
a.climber.girl { color: red; }
a.climber.girl.pretty { color: pink; }
Ответ 2
Если вы используете HTML5 doctype, вы можете добавить данные attrbutes, которые действительны.
Значит, что-то вроде следующего будет
<a href id="myLlink" data-isClimber="True">Chris Sharma</a>
Ответ 3
Это не лучшая и не лучшая практика.
Я думаю, вам нужно это для обработки JavaScript. Обычно я решаю проблему, добавляя специальный атрибут "class" с префиксом "js".
Другим решением является использование сохранение данных/извлечение данных функциональность JQuery или эквивалент любой другой структуры, которая подразумевает повторение всех над вашим сгенерированным HTML.
Ответ 4
Это недействительный XHTML, который является плохим - в основном потому, что вы не можете показать с действительным
;) Каждый основной браузер и поисковая система будет игнорировать дополнительные атрибуты. Вы можете добавить дополнительное пространство имен, чтобы снова сделать свой XHTML.
<html xmlns:my="http://example.com">
<!-- SNIP -->
<a href id="myLlink" my:isClimber="True">Chris Sharma</a>
<!-- SNIP -->
</html>
Это совершенно правильный XHTML. Однако W3C Validator все равно откажется его проверять (я думаю). Это недостаток их синтаксического анализа XML. Для таких парсеров, не поддерживающих пространство имен, my:isClimber
по-прежнему будет обрабатываться как isClimber
. Но теперь вы можете успокоиться, так как знаете, что это действительно XML и, наконец, то, что считается, не так ли?)
Ответ 5
Используя jquery,
для хранения: $('# element_id'). data ('extra_tag', 'extra_info');
для извлечения: $('# element_id'). data ('extra_tag');
Это также было опубликовано @[http://stackoverflow.com/a/16985773/2458978] [1]
[1]: Как хранить произвольные данные для некоторых HTML-тегов
Ответ 6
Я не считаю, что это плохая практика как таковая, она, безусловно, очень удобна и именно то, что вы сделали бы в среде xml. Более важным является характер информации, которую вы держите в этих пользовательских атрибутах и как они используются в вашем коде.
Более приятной альтернативой было бы хранение данных по-разному, например, функции data() jQuery.