2010-08-26 43 views
0

我想有一些HTML这样的:将数值附加到元素的好方法是什么?

<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> 

然后操纵它是这样的:

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

但我不想写的不好的标记。是否有可以设置的通用属性?

回答

2

您可以使用jQuery .data()方法,允许您将数据应用于元素,而无需以非语义方式使用属性。

这就是说,回头看看你的问题是你在从后端生成这些值还是使用jQuery?

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

+0

不是,它不是后端,我完全可以使用它!甜! – 2010-08-26 09:55:17

+0

太棒了!很高兴我可以帮助:-) – 2010-08-26 10:00:38

+0

你甚至不需要jQuery,你可以编写'someElement.someMadeUpProperty = 3'而不必将其设置为字符串属性值。这些被称为“expando”属性,虽然它们没有标准化,但每个浏览器都实现了它们,实际上jQuery使用它们来实现'data()'。你应该小心地选择一个未来不会成为真正的DOM属性的名称(例如,用'_'作为名称的前缀)。 – bobince 2010-08-26 10:14:25

相关问题