2010-08-26 7 views
0

Je voudrais avoir un HTML comme ceci:Quel est un bon moyen d'attacher une valeur numérique à un élément?

<div id="div0" someAttr="0" class="shown">Some stuff</div> 
<div id="div1" someAttr="1">Some stuff</div> 
<div id="div2" someAttr="2">Some stuff</div> 
<div id="div3" someAttr="3">Some stuff</div> 

Et puis le manipuler comme ceci:

$('div').click(function() 
    { 
    if($(this).someAttr > $('div.shown').someAttr) 
     doSomething(); 
    }); 

Mais je ne veux pas écrire mauvais balisage. Y a-t-il un attribut polyvalent que je peux définir?

Répondre

2

Vous pouvez utiliser la méthode jQuery .data(), vous permet d'appliquer des données à un élément sans avoir à utiliser des attributs de manière non sémantique. Cela dit, en regardant en arrière à votre question, cherchez-vous à générer ces valeurs à partir du back-end ou en utilisant jQuery?

http://api.jquery.com/jQuery.data/

+0

Non, ce n'est pas arrière, je peux tout à fait l'utiliser! Doux! –

+0

Génial! Heureux je pourrais aider :-) –

+0

Vous n'avez même pas besoin de jQuery, vous pouvez écrire 'someElement.someMadeUpProperty = 3' sans en faire une valeur d'attribut de chaîne. Ces propriétés sont appelées 'expando' et bien qu'elles ne soient pas standardisées, chaque navigateur les implémente et en effet jQuery les utilise pour implémenter 'data()'. Vous devriez juste faire attention à choisir un nom qui ne deviendra pas une vraie propriété DOM dans le futur (par exemple, préfixez le nom avec '_'). – bobince

Questions connexes