0

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

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

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

$('.container p')

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

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

k-ranked:k-ranked p-tag/object 将是第 k 个定位的 p-tag 从 1 开始计数:

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

谢谢。

4

2 回答 2

1

Maybe something like that:

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

But say something more about "n", "j", "k" indexes.

于 2013-07-07T14:53:13.100 回答
1

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

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

JS小提琴

于 2013-07-07T15:01:04.647 回答