开发者社区> 问答> 正文

$('ul li:gt(0) span:first').css('color', 'red'

<ul>
    <li><span>1</span><span>2</span></li>
    <li><span>11</span><span>22</span></li>
    <li><span>111</span><span>222</span></li>
</ul>

结构就这样. 我认为匹配的应该是 ‘11’ ‘111’。 但结果是‘11’。 很纳闷不解。

然后换成

$('ul li:gt(0)').each(function(){
    $(this).find('span:first').css('color', 'red');
});

可行。

求解为什么选择器不行.

展开
收起
杨冬芳 2016-06-03 17:25:56 2182 0
1 条回答
写回答
取消 提交回答
  • IT从业

    选择器改成这样:$('ul li:gt(0) span:first-child').css('color','red');

    $('ul li:gt(0) span')返回的结果集是span,$('ul li:gt(0) span:first')只是选择结果集中的第一个。即$('ul li:gt(0) span:first').length是1,而a b:first-child的含义是每一个a的子元素中,第1个与b匹配的元素,所以$('ul li:gt(0) span:first-child').length是2。

    2019-07-17 19:26:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载