正在浏览jQuery文档并发现了一些我不太了解的东西))在页面上说,我有一个像这样的列表:
<ul id='list0'>
<li>list item 1<b></b></li>
<li>list item 2<b></b></li>
<li>list item 3<b></b></li>
<li>list item 4<b></b></li>
</ul>
当我运行这段代码
$('#list0 li').attr('id', function(i) {
return (i + 1) % 2 ? 'odd' : 'even';
}).each(function() {
$('b', this).text(' -> ' + this.id);
});
我得到的输出
一切正常,并且每个<li>
内部<ul>
得到一个id
的奇数或偶数。当我使用each()
到组里面的内容<b>
我可以得到id
的<li>
使用this.id。
问题是,当我使用其他<li>
属性而不是id时,为什么这不起作用?
$('#list0 li').attr('foo', function(i) {
return (i + 1) % 2 ? 'odd' : 'even';
}).each(function() {
$('b', this).text(' -> ' + this.foo);
});
结果是
即使FOO的每个属性<li>
仍设置于偶数或奇数不知何故这个时候我不能让富的内部each()
与this.foo。
我使用jQuery 1.10.2。
谢谢你。
这里有两件事要注意:
首先,id
s是唯一的,实际上,您最多只能有一个具有给定id的元素。因此,您的第一个代码示例是您不应执行的操作。
元素没有foo
属性,您需要使用this.getAttribute("foo")
或来访问它$(this).attr("foo")
。
所以:
('#list0 li').attr('foo', function(i) {
return (i + 1) % 2 ? 'odd' : 'even';
}).each(function() {
$('b', this).text(' -> ' + this.getAttribute('foo'));
});
附带说明-list0, list1
由于事实证明您可能不应该有顺序列表ID之类的,以此类推。您还应该考虑将任意数据存储在JavaScript对象中,而不是存储在DOM上。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句