不能将带变量的id添加到类中

时间:2015-03-26 22:40:23

标签: javascript jquery

如何迭代类名,我不能wrap,也不能为它们添加id+var,这就是问题所在:

$('.meteo')会返回list,因此,$('.meteo')[0]将返回第一个元素,但为什么我不能在循环中操作它?例如:

for (h = 0; h < 4; h++) {
    $('.meteo')[h].attr('id', 'meteo'+h);
}

2 个答案:

答案 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);