现在有人如何能够选择多个html元素。对于这个例子,我感兴趣的是通过第7个元素,第8个元素到第11个元素选择每个第4个元素,依此类推。
答案 0 :(得分:2)
您可以尝试合并nth-child
和not
,如下所示:
:nth-child(-n+7):not(:nth-child(-n+3))
看起来很奇怪,但第一个nth-child
选择元素1到7,第二个删除元素1到3,留下第4个,第5个,第6个和第7个,如您所要求的那样。
答案 1 :(得分:0)
jquery选择器返回一个数组,所以你实际上可以去
var four_to_seven = []
var $results = $('.myselector');
for(var i in $results){
if(i>=3 && i<=6){
four_to_seven.push($results[i]);
}
}
答案 2 :(得分:0)
看起来您想要选择元素的“范围”。 “倍数”一词让我失望。它不干净,但你可以像这样使用nth-child:
$(":nth-child(4), :nth-child(5), :nth-child(6),:nth-child(7)")
答案 3 :(得分:0)
JQuery对象包含通过选择器找到的所有元素的列表。您可以使用此列表中的索引来获取项目。
例如:
$("div")[1] <- second div in the document
$("div")[3] <- fourth div in the document.
您可以使用javascript循环播放它们。
希望有所帮助!
答案 4 :(得分:0)
对于一次性,您可以串联使用:gt
和:lt
选择器,例如:
var divs = $("div:gt(2):lt(4)"); // Fourth through seventh inclusive
如果你想在组中循环遍历它们,第一个数字(:gt(x)
)会发生变化,第二个数字不会变化(因为它适用于前者的结果):Live example | source
虽然我认为如果我在循环播放,我会抓住它们然后使用slice
。你的起点(第四个)有点奇怪,因为“第四到第七”和“第八到第十一”都是四个一组,但“第一到第三”是一组三个。
以三人一组的方式使用slice
:
jQuery(function($) {
var divs = $("div");
var index;
var group;
// By threes rather than fours
group = 0;
for (index = 0; index < divs.length; index += 3) {
++group;
divs.slice(index, index + 3).append(
"<span>Group " + group + "</span>"
);
}
function display(msg) {
$("<p>").html(msg).appendTo(document.body);
}
});