假设我得到了诸如$(".box")之类的项目列表。是否有可能获得索引的jQuery对象

喜欢

var $boxes = $(".box"),
    $box2 = $boxes[1]


目前我正在做类似的事情

var $boxes = $(".box");
$boxes.each(function(i, box) {
    var $box = $(box); // <-- is this a good idea?
    // do something with $box
});


我想知道var $box = $(box)行是否是一个好主意?我实际上是在setInterval()中运行它

喜欢

var $boxes = $(".box");
setInterval(function() {
    $boxes.each(function(i, box) {
        var $box = $(box); // <-- is this a good idea?
        // do something with $box
    });
}, 1000);


我想知道它是否对性能有害,因为在此示例中,我正在为每1s中$boxes中的每个项目初始化一个变量。如果我可以直接从jQuery“数组”或$ boxes中访问元素,那可能更好吗?

最佳答案

您可以按照示例遍历jQuery元素,这没什么不对。为每个元素var $box = $(box);创建一个局部变量是一个好主意。

您还可以使用eq方法访问jQuery对象的元素,例如:

var $boxes = $(".box"),
$box2 = $boxes.eq(1);


这样,您无需通过$构造函数传递元素。

10-05 21:55