首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在列表中找到具有指定类的第五个元素,然后在jQuery中添加另一个类

在列表中找到具有指定类的第五个元素,然后在jQuery中添加另一个类
EN

Stack Overflow用户
提问于 2010-07-13 17:41:07
回答 4查看 8.7K关注 0票数 16

我想在我的站点中的每个ul容器中addClass "green"到第5个li.hr

代码语言:javascript
复制
$("ul li.hr").each(function() {
  if ($(this).length = 5) {
    $(this).addClass("green");
  }
});

附言:如果可以只与CSS,请告诉我如何。

请注意,ul包含混合元素,例如:

代码语言:javascript
复制
<li class="a">foo</li>
<li class="b">foo</li>
<li class="hr">foo</li>
<li class="c">foo</li>
<li class="a">foo</li>
<li class="hr">foo</li>

我需要第5个li.hr

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-27 09:13:50

你可以在纯CSS中做到这一点:

代码语言:javascript
复制
/* set rule: select every li.hr element after the 4th  */
ul > li.hr ~ li.hr ~ li.hr ~ li.hr ~ li.hr {
  color: green;
}
/* unset rule: select every li.hr element after the 5th  */
ul > li.hr ~ li.hr ~ li.hr ~ li.hr ~ li.hr ~ li.hr {
  /* reverse the rules set in the previous block here */
  color: black;
}

注意: IE6不支持~选择器。在其他所有东西上都工作得很好。

票数 7
EN

Stack Overflow用户

发布于 2010-07-25 20:19:52

代码语言:javascript
复制
var lis = $('ul li.hr');
if(lis.length >= 4) { 
    $(lis[4]).addClass('green'); 
}

应该能行得通。我已经在Firebug中测试过了。

:nth-child选择器不会像您期望的那样工作,因为它没有考虑类选择器。

票数 1
EN

Stack Overflow用户

发布于 2010-07-13 17:43:28

您需要在那里使用nth-child

代码语言:javascript
复制
$("ul li.hr:nth-child(5)").addClass('green');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3235900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档