0

现在有没有人能够选择多个 html 元素。对于这个例子,我感兴趣的是选择每第 4 个元素到第 7 个元素,第 8 个元素到第 11 个元素,依此类推。

4

5 回答 5

2

您可以尝试组合nth-childnot如下:

: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)")

API 文档: http ://api.jquery.com/nth-child-selector/

于 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

对于一次性,您可以串联使用:gtand选择器,例如::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 回答