我正在尝试一些非常基本的东西,但我无法弄清楚为什么这不起作用。 我可以使用[i]获取有关该对象的信息,但我无法以这种方式更改数据?
// Make all the li's invisible
$('div#rotator ul li').css({opacity: 0.0});
// Calculate a random number between 1 and 3
var randnr = Math.floor((1-4)*Math.random()) + 4;
for(var i = 0; i < $('#rotator ul li').length; i++) {
// Make the i element appear
$('#rotator ul li')[i].css({opacity: 1.0});
}
答案 0 :(得分:5)
jQuery对象是类似于数组的对象,可以用作原始DOM元素的数组
因此,$(...)[i]
获取第i个原始DOM元素,而不是包含它的jQuery对象。
要获取包含第i个元素的jQuery对象,请调用.eq()
method,如下所示:
$('#rotator ul li').eq(i).css({opacity: 1.0});
您还可以使用:eq
selector:
$('#rotator ul li:eq(i)').css({opacity: 1.0});
但是,根本不需要循环;你可以一次隐藏所有元素:
$('div#rotator ul li').css({opacity: 1.0});
答案 1 :(得分:1)