javascript - 使用 jquery 修改列表中的第 n 个 li

标签 javascript jquery loops

我正在尝试一些非常基本的东西,但我就是想不通为什么这行不通。 我可以使用 [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});
}

最佳答案

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});

关于javascript - 使用 jquery 修改列表中的第 n 个 li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246963/

相关文章:

Jquery如何获取具有特定数据属性的隐藏字段并设置另一个数据属性

mysql - mysql 将多行插入单行

javascript - 如何从某个索引点向后循环数组

arrays - 在遍历数组时向数组添加元素

php - 从客户端向服务器发送 30 个变量的最佳方式是什么?

javascript - JS OR 运算符不适用于 v-bind Vue.js

javascript - 防止基于选择框选择的单选按钮发生更改

javascript - VUE : Ava can't run any assertion ERROR

JavaScript "while"循环不卡住浏览器?

jquery - 当页面滚动时如何使用 id 更改菜单的事件类别