为了账号安全,请及时绑定邮箱和手机立即绑定

两者效果一样,有什么区别

$("ol :first-child").css("background-color", "green");

$("li:first-child").css("background-color", "green");

两者效果一样,有什么区别吗

正在回答

6 回答


我把body改为了:


<body>

        <h3>改变每个"蔬菜水果"中第一行的背景色</h3>

        <ol>

            <li>芹菜</li>

            <li>茄子</li>

            <li>萝卜</li>

            <li>大白菜</li>

            <li>西红柿</li>

        </ol>

        <ol>

            <li>橘子</li>

            <li>香蕉</li>

            <li>葡萄</li>

            <li>苹果</li>

            <li>西瓜</li>

        </ol>

        <ol>

            <h2>桃子</h2>

            <li>橘子</li>

            <li>香蕉</li>

            <li>葡萄</li>

            <li>苹果</li>

            <li>西瓜</li>

        </ol>

 <ul>

            <li>橘子</li>

            <li>香蕉</li>

            <li>葡萄</li>

            <li>苹果</li>

            <li>西瓜</li>

        </ul>

        <script type="text/javascript">

            $("ol :first-child").css("background-color", "green");

        </script>

    </body>

$("ol :first-child"):这个是橘子和桃子都有效果;

$("ol:first-child"):这个是没有任何效果;

$("li:first-child"):这个是除了有桃子的组外,所有的橘子都有效果;

$("ol li:first-child"):这个是只有前两组的橘子有效果;

如果不看$("ol:first-child"):这个是没有任何效果;这一条的话,这个选择器应该是:$("ol :first-child")选择所有ol下的第一个子元素。$("li:first-child")选择的是第一个子元素为li的父元素的第一个子元素。$("ol li:first-child")选择的是第一个子元素为li并且父元素为ol的父元素的第一个子元素。当然,这里面选择的结果是数组。

那么,为什么$("ol:first-child")会没有效果?

刚刚才发现,这是因为$("ol:first-child")是选择第一个子元素为ol的父元素的子元素合集。那么,这段代码里面,body是ol的父元素。但是body的第一个子元素却是h3。所以选择器没有挑选到符合条件的元素。只要把h3标签删除或移一个地方,就可以看到效果了。


2 回复 有任何疑惑可以回复我~
#1

666图

当然,以上都是推测,如果有错误的话,大家要赶紧指正,要不就误导了。
2015-12-30 回复 有任何疑惑可以回复我~
#2

kertz

一直头晕选择器中间的空格,有些要空格才行,有些不可以用空格
2016-02-18 回复 有任何疑惑可以回复我~
#3

potatoshaner 回复 666图

好6 啊
2016-02-19 回复 有任何疑惑可以回复我~

写成$("ol li:first-child").css("background-color","green")就可以了

1 回复 有任何疑惑可以回复我~

使用$("ol:first-child").css("background-color","green")没有效果,只能使用li

0 回复 有任何疑惑可以回复我~

你确定用ol有效?我怎么用了没效,只有用li

0 回复 有任何疑惑可以回复我~

有木有大神告诉下第二行代码什么高级写法?

0 回复 有任何疑惑可以回复我~

第一个是找到ol的第一个子节点 设置背景颜色,其实就是ol里的第一个li。

第二个是找有所有的li(这里会根据ol来分组,每一个ol中的为一组),然后设置(每一组的)第一个的背景颜色,也是ol中的第一个li.

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

两者效果一样,有什么区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信