如何迭代类名,我不能wrap
,也不能为它们添加id+var
,这就是问题所在:
$('.meteo')
会返回list
,因此,$('.meteo')[0]
将返回第一个元素,但为什么我不能在循环中操作它?例如:
for (h = 0; h < 4; h++) {
$('.meteo')[h].attr('id', 'meteo'+h);
}
答案 0 :(得分:3)
这是因为您在非jQuery object上使用了jQuery方法.attr()
。
$('.meteo')[0]
,成为原生DOM element,并且它没有jQuery方法。
您可以使用.eq()
method来代替按索引访问元素:
$('.meteo').eq(h).attr('id', 'meteo' + h);
您也可以直接更改id
属性:
$('.meteo')[h].id = 'meteo' + h;
或..
document.querySelectorAll('.meteo')[h].id = 'meteo' + h;
答案 1 :(得分:2)
返回的jQuery集中的项是本机DOMElements
,您需要将它们重新包装为
$($('.meteo')[h]).attr('id', 'meteo'+h);
或使用原生的setAttribute
方法,如下所示:
仅限原生
var metro = document.querySelectorAll('.metro'), i;
for (i = 0; i < 4; i++)
metro[i].setAttribute('id', 'metro'+i);