2

虽然对于单个元素,我们可以使用 jQuery('#elem').get(0),但有没有一种方法可以获取节点元素以进行多选:

比如:jQuery('.elements').getAll(0) ?

我正在寻找一个没有循环迭代的解决方案(如果存在)。

4

2 回答 2

3

没有单一的方法可以做到这一点。您唯一的其他选择是通过不将参数传递给来获取所有.get()匹配的节点:

var all = jQuery('.elements').get();

但是,您可以在调用之前将匹配集减少到您需要的元素.get()以实现相同的目标。您可以使用.slice()返回两个索引之间的匹配元素的子集:

var all = jQuery('.elements').slice(1, 3).get();

除此之外,您最好的选择可能是使用某种形式的迭代(例如.filter())返回特定索引处的元素,然后.get()再次使用:

var all = jQuery('.elements').filter(function (i) {
    return i === 2 || i === 5 || i === 9;
}).get();
于 2012-11-29T08:41:57.510 回答
1

只需使用选择...

单班

$('.elements').get() // It will return all the DOM elements have class="elements <other_classes>"

对于多个班级

$('.elements, .nav, .address').get() // It will get all the DOM elements has either of these classes.
于 2012-11-29T08:42:26.883 回答