Использует ли пользовательские атрибуты данных проблемы с совместимостью с браузером?
Мне нужно выбирать между тегами пользовательских данных или идентификаторами. Я хотел бы выбрать теги пользовательских данных, но я хочу быть уверенным, что они не вызывают проблемы совместимости браузеров для наиболее широко используемых браузеров сегодня.
Я использую jQuery 1.6, и мой конкретный сценарий включает ситуацию, когда мне нужно ссылаться на commentId для нескольких действий.
<div data-comment-id="comment-1" id="comment-1">
<a class="foo"></a>
</div>
Легче извлекать теги данных в jQueryin: $('foo').data('commentId');
Извлечение подстроки из идентификатора кажется немного сложным и может ломаться по той или иной причине: <a id="comment-1"
Есть ли какие-либо значительные достоинства или фатальные недостатки для любого подхода?
Ответы
Ответ 1
я бы посоветовал в пользу атрибутов данных по следующим причинам:
- ids должны быть уникальными для документа.
поэтому они ограничены в семантике, которую они могут нести.
- вы можете иметь несколько атрибутов данных для каждого элемента.
и, вероятно, менее релевантны в вашем случае:
- изменение идентификаторов может привести к поломке idrefs
(однако я не уверен, полностью ли понимаю ваши спецификации, поскольку извлечение идентификатора элемента в jquery столь же тривиально, как получение атрибута data: $('.foo').attr('id');
).
вам может быть интересно этот сайт совместимости браузеров для веб-технологий.
Если xhtml является проблемой для вас, вам также может быть интересно, как использовать пользовательские атрибуты данных в xhtml: см. здесь для обсуждения SO и здесь для xhtml-совместимого подхода с использованием пространств имен.
надеюсь, что это поможет,
С наилучшими пожеланиями, carsten
Ответ 2
этот парень говорит, что данные работают над IE6.
Ответ 3
Вот соответствующий график на caniusecom: http://caniuse.com/#feat=dataset