Jquery:如何选择:第一个孩子:不(类)

时间:2018-03-14 13:00:58

标签: jquery

我想从li中选择第一次出现的ul,但没有特定的等级。

请检查以下代码段,例如,我想在red添加课程li,而myClass没有课程<li>Two</li>。我希望red应该添加课程$(document).ready(function() { $('ul li:not(.myClass):first-child').addClass('red'); });

&#13;
&#13;
.red {
  color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="myClass">One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
</ul>
&#13;
class Parent(object):
    x = False
class Intermediate(Parent):
    x = True
class Child1(Intermediate):
    //...data
class Child2(Intermediate):
    //...data
&#13;
&#13;
&#13;

更新:同样,我也想选择第二个孩子。有可能吗?

先谢谢。

3 个答案:

答案 0 :(得分:3)

使用:first代替:first-child选择器

&#13;
&#13;
$(document).ready(function() {
  $('ul li:not(.myClass):first').addClass('red');
});
&#13;
.red {
  color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="myClass">One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
</ul>
&#13;
&#13;
&#13;

您可以使用.eq(index)

根据索引定位元素
$('ul li:not(.myClass):eq(1)').addClass('red');

答案 1 :(得分:1)

您只需使用:first而不是:first-child。所以你的选择器应该是'ul li:not(.myClass):first'

$(document).ready(function() {
  $('ul li:not(.myClass):first').addClass('red');
});

<强> Eidted

发表评论后,我想推荐jquery eq()函数。通过使用eq(),您可以通过传递li的第n个来选择任何li

$('ul li:not(.myClass):eq(1)').addClass('red');

对于eq()函数,li的第一个位置是0

答案 2 :(得分:0)

尝试

$(document).ready(function() {
  $('ul li:first-child').addClass('red');
});