【发布时间】:2011-03-29 23:41:55
【问题描述】:
我正在尝试获取class 中每个元素的id,但它会分别提醒类的每个名称,因此对于class="test",它会提醒:t、e、@ 987654326@,t... 任何有关如何获取 id 的每个元素的建议,这是class 的一部分,我似乎无法弄清楚这一点。谢谢。
$.each('test', function() {
alert(this)
});
【问题讨论】:
我正在尝试获取class 中每个元素的id,但它会分别提醒类的每个名称,因此对于class="test",它会提醒:t、e、@ 987654326@,t... 任何有关如何获取 id 的每个元素的建议,这是class 的一部分,我似乎无法弄清楚这一点。谢谢。
$.each('test', function() {
alert(this)
});
【问题讨论】:
试试这个,用类的实际名称替换.myClassName(但保留句号在开头)。
$('.myClassName').each(function() {
alert( this.id );
});
所以如果课程是“测试”,你会做$('.test').each(func...。
这是 .each() 的特定形式,它迭代一个 jQuery 对象。
您使用的表单会迭代 任何 类型的集合。所以你本质上是在迭代一个字符数组t,e,s,t。
使用 that 形式的$.each(),您需要这样做:
$.each($('.myClassName'), function() {
alert( this.id );
});
...这将与上面的示例具有相同的结果。
【讨论】:
patrick dw 的回答是对的。
对于踢球和咯咯笑,我想我会发布一个简单的方法来返回所有 ID 的数组。
var arrayOfIds = $.map($(".myClassName"), function(n, i){
return n.id;
});
alert(arrayOfIds);
【讨论】:
$.map() 确实非常好。尽管如果我可以表达我的个人偏见,我会做n.id 而不是为每次迭代创建一个新的jQuery 对象,因为它更有效。只是想我会提到它。 :o)
$(document).ready(function () {
$('div').each(function () {
var id = $(this).attr('id');
console.log(id);
});
});
【讨论】: