2009-09-16 3 views

Répondre

14

Jusqu'à HTML5 no. Avec HTML 5, l'attribut data-* est prévu à cet effet.

Par exemple: -

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

Dans la technologie actuelle il n'y a pas "officielle" loin de le faire. Cependant, tous les navigateurs vous permettent d'ajouter un attribut arbitraire à un élément HTML afin de HTML4 vous pouvez le faire: -

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

qui, comme vous pouvez le voir est identique mais pas offically sactioned et si vous voulez le strict respect de XHMTL seront considéré comme "brisé".

Vous pouvez accéder à l'attribut comme vous le feriez pour tout autre: -

var mydata = document.getElementById("myStuff").getAttribute("data-mydata"); 
+0

Downvoter, commenter s'il vous plait? – AnthonyWJones

3

Vous pourriez peut-être utiliser le html5 data-* attributes? Il échouera la validation sur html4, mais il est probablement encore la meilleure option ...

+1

Bien qu'il échoue une validation stricte sur html4, il fonctionnera toujours parce que tous les navigateurs l'acceptent, et à la fin, c'est ce qui compte vraiment. – awe

0

Jetez un oeil à www.htmlref.com ou W3C pour les attributs utilisés.

À part ceux que vous pouvez simplement ajouter les vôtres, ils seront rendus et ils seront accessibles via du code, par exemple en C# vous pouvez accéder à une collection d'attributs de contrôles.

Control.Attributes ["MyCustomAttribute"] = "Bonjour tout le monde";

0

il ya rel et rev attributs, qui fonctionnent dans les éléments avec un href -attribut. ils ont une signification sémantique, mais sont souvent utilisés comme un attribut pour stocker des informations supplémentaires.

+2

Donc, nous devrions abuser de ces attributs aussi? – Gumbo

1

Si vous stockez des données à utiliser en javascript, vous pouvez également utiliser quelque chose comme le plugin Métadonnées de jQuery. Fondamentalement, vous pouvez stocker des données dans la classe = « » attribut, comme de l'élément si:

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

Puis en javascript:

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

D'autres kits utilisent le titre ou rel attributs pour stocker des données. Bien que ce soit plus convivial pour la validation, il peut être préférable ou non d'utiliser la réponse d'AnthonyWJones en utilisant simplement des attributs non standard. Cela va "casser" la validation, mais là encore selon Dojo, les attributs personnalisés sont des HTML parfaitement valides, même s'ils ne sont pas validés par rapport à une DTD.

Donc non - il n'y a pas un seul attribut spécifique bien accepté où vous pouvez vider toutes les données. Tous les attributs existants sont destinés à des utilisations spécifiques. Mais vous pouvez soit 1) créer vos propres attributs, soit 2) convertir un tag existant pour le réutiliser à vos fins. Je voulais juste souligner l'alternative.

+0

hmm belle réponse, et honnêtement, je l'ai utilisé avant que je pense que janvier dernier – lock

Questions connexes