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

将节点修改为ul为什么只有第二个框里的字变蓝色了

 $("button:last").click(function() {

        //遍历所有的li

        //修改偶数li内的字体颜色

        $("ul").each(function(index, element) {

            if (index%2) {

                $(this).css('color','blue')

            }

        })

    })

黑色的地方是修改的节点。

点击回调按钮后只有第二个框变蓝

http://img1.sycdn.imooc.com//57be642c0001034e03550244.jpg

而且修改之后,先点击each()方法遍历li元素让所有li里的字变红,再点击回调按钮后,字体无法变蓝

http://img1.sycdn.imooc.com//57be64700001ee4303570246.jpg



正在回答

2 回答

首先第一个问题, if(index%2)=if(true),因为index%2 = 1嘛。

所以当你把节点换成ul后,只有1%2=1为真,所以其他都是false,就只有第2个ul有效果了。

注:索引是从0开始。

第二个问题,因为此时里面this的指向是ul了,而ul下又没其他文本内容,当然就看不出效果了。

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

江励志 提问者

非常感谢!
2016-08-27 回复 有任何疑惑可以回复我~

<script type="text/javascript">
    $("button:last").click(function() {
        //遍历所有的li
        //修改偶数li内的字体颜色
        $("ul").each(function(index, element) {
            if (index % 2) {
                $(this).css('color','blue')
            }
        })
    })
    </script>

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

举报

0/150
提交
取消

将节点修改为ul为什么只有第二个框里的字变蓝色了

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