JQuery Multiples?

时间:2012-05-31 14:11:41

标签: jquery

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

5 个答案:

答案 0 :(得分:2)

您可以尝试合并nth-childnot,如下所示:

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

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

答案 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);
  }
});

Live example | source