现在有没有人能够选择多个 html 元素。对于这个例子,我感兴趣的是选择每第 4 个元素到第 7 个元素,第 8 个元素到第 11 个元素,依此类推。
问问题
101 次
5 回答
2
您可以尝试组合nth-child
和not
如下:
:nth-child(-n+7):not(:nth-child(-n+3))
这可能看起来很奇怪,但第一个nth-child
选择元素 1 到 7,第二个删除元素 1 到 3,按照您的要求留下第 4、5、6 和 7 个元素。
于 2012-05-31T14:15:52.153 回答
0
看起来您想要选择元素的“范围”。“倍数”这个词让我大吃一惊。它不干净,但你可以像这样使用 nth-child :
$(":nth-child(4), :nth-child(5), :nth-child(6),:nth-child(7)")
于 2012-05-31T14:16:02.360 回答
0
JQuery 对象包含它通过选择器找到的所有元素的列表。您可以使用此列表中的索引来获取项目。
例如:
$("div")[1] <- second div in the document
$("div")[3] <- fourth div in the document.
您可以使用 javascript 循环浏览它们。
希望有帮助!
于 2012-05-31T14:17:05.513 回答
0
对于一次性,您可以串联使用:gt
and选择器,例如::lt
var divs = $("div:gt(2):lt(4)"); // Fourth through seventh inclusive
如果你想在组中循环遍历它们,第一个数字(:gt(x)
)会改变,第二个不会(因为它适用于前者的结果):Live example | 资源
虽然我想如果我在循环,我会抓住它们然后使用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);
}
});
于 2012-05-31T14:19:32.267 回答
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]);
}
}
于 2012-05-31T14:15:24.360 回答