老师,为什么不能这样链式写?

来源:2-5 编程练习

慕虎4498661

2020-06-06 22:07:31

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        ul{

            cursor:pointer;

        }

    </style>

</head>

<body>

    <ul id="menu">

        <li>Web前端攻城狮</li>

        <li>前端小白入门</li>

        <li>前端进阶:响应式开发与常用框架</li>

        <li>HTML5与CSS3实现动态网页</li>

        <li>HTML5&CSS3进阶与常用框架</li>

        <li>JavaScript基础入门</li>

        <li>进击JavaScript核心</li>

    </ul>

    <script src="https://cdn.bootcss.com/zepto/1.1.7/zepto.min.js"></script>

<script>

     /*此处写代码*/

     $('ul').on('click','li',function(){

         $('li').css('backgroundColor','');


         $(this).css('backgroundColor','yellow')

         .prev().css('backgroundColor','blue')

         .next().css('backgroundColor','red')


     })

    </script>

</body>

</html>

http://img.mukewang.com/climg/5edba3210980ce6007990324.jpg


写回答

1回答

好帮手慕久久

2020-06-07

同学你好,问题解答如下:

因为“$(this).css('backgroundColor', 'yellow').prev().css('backgroundColor', 'blue')”这句代码最后操作的是“$(this)的前一个元素”,所以返回的也是$(this)的前一个元素,可以打印看一下:

http://img.mukewang.com/climg/5edc535f09adf2f516770272.jpghttp://img.mukewang.com/climg/5edc536309d6f85710490253.jpg

所以接下来的next()方法,是对返回的“prev”进行操作,因此不能这样写。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

0

0 学习 · 6815 问题

查看课程