Есть ли общий атрибут для всех элементов HTML, кроме идентификатора и класса? - PullRequest
9 голосов
/ 16 сентября 2009

Как тег, который я могу использовать для хранения необходимой информации? Но на самом деле не требуется или не используется HTML? Работает как атрибут тега для объектов в Visual Basic?

Ответы [ 5 ]

15 голосов
/ 16 сентября 2009

До HTML5 нет. В HTML 5 это предусмотрено атрибутом data-*.

Например: -

<div id="myStuff" data-mydata="here is my data">

В современных технологиях нет "официальных" сторонников, чтобы сделать это. Однако все браузеры позволяют добавлять любой произвольный атрибут к элементу HTML, поэтому в HTML4 вы можете сделать это: -

<div id="myStuff" data-mydata="here is my data">

Который, как вы можете видеть, идентичен, но не содержит официального указания, и если вы хотите, чтобы строгое соблюдение XHMTL считалось «нарушенным».

Вы можете получить доступ к атрибуту так же, как и к любому другому: -

var mydata = document.getElementById("myStuff").getAttribute("data-mydata");
3 голосов
/ 16 сентября 2009

Возможно, вы могли бы использовать атрибуты html5 data- * ? Он не пройдет валидацию на html4, но, вероятно, все еще будет лучшим вариантом ...

1 голос
/ 14 мая 2011

Если вы храните данные для использования в javascript, вы также можете использовать что-то вроде плагина метаданных jQuery. По сути, вы можете хранить данные в атрибуте class = "" элемента, например:

<div id="aaa" class="class1 class2 class3 { type: 'food', color: 'green' }"></div>

Тогда в JavaScript:

alert($('#aaa').metadata().color) // "green"

Другие наборы используют атрибуты title или rel для хранения данных. Хотя это более удобно для проверки, это может быть лучше, чем использование ответа AnthonyWJones о применении нестандартных атрибутов. Это «нарушит» валидацию, но, опять же, в соответствии с Dojo , пользовательские атрибуты являются абсолютно корректным HTML, даже если они не проверяются по DTD.

Так что нет - нет ни одного хорошо принятого конкретного атрибута, в который вы можете записать все данные. Все существующие атрибуты предназначены для конкретного использования. Но вы можете либо: 1) создать свои собственные атрибуты, либо 2) использовать существующий тег для повторного использования в ваших целях. Просто хотел указать на альтернативу.

0 голосов
/ 16 сентября 2009

есть атрибуты rel и rev, которые работают в элементах с атрибутом href. они имеют смысловое значение, но часто используются как атрибут для хранения дополнительной информации

0 голосов
/ 16 сентября 2009

Посмотрите на www.htmlref.com или W3C для используемых атрибутов.

Кроме тех, которые вы можете просто добавить свои, они будут отображаться и будут доступны через код, например, в C # вы можете получить доступ к коллекции атрибутов управления.

Control.Attributes ["MyCustomAttribute"] = "Hello World";

...