在后代选择器中排除元素?

时间:2013-07-07 14:45:26

标签: jquery jquery-selectors

我想知道在选择下降后是否有任何方法可以排除元素。假设我们有这个DOM:

    <div class="container">
      <p></p>
      <p></p>
        .
        .
        .
      <p></p>
      <p></p>
    </div>

现在,如果我们使用这样的选择器:

$('.container p')

我们将获得所有<p>标签/对象(假设它们是n个标签/对象)。如果我想排除k级p标签/对象怎么办?因此让我的选择器只返回n-1个p-tags / objects?

PS:您可能建议使用id属性,但我们假设我无法在所有p-tag中添加id,并且我可能希望排除k或j排名p-tag,at wish。此外,我知道这可能在JavaScript中可行,但我正在寻找一个特定于jQuery的答案(尽管JavaScript可能是最后的手段)。

k-ranking :k排名的p-tag / object将是从第1位开始计数的第k个位置p-tag:

      <p></p>  <---> 1
      <p></p>  <---> 2
        .
        .
      <p></p>  <---> k 
        .
        .
      <p></p>  <---> n-1
      <p></p>  <---> n

感谢。

2 个答案:

答案 0 :(得分:1)

也许是这样的:

var $elements = $("div.container > p:not(:eq(2))");

但是更多地谈论“n”,“j”,“k”索引。

答案 1 :(得分:1)

如果要将样式应用于某些元素,并且想要排除该类型的某个第k个元素,则可以使用: -

$( document ).ready(function() {
$("p:not(:eq(2))").css("border", "3px solid red");
    });

JS FIDDLE