想问一下,把自定义的v和$aaron变量放到外面,结果执行的都是让第二个字变颜色,谁能来解释一下。。

来源:6-4 jQuery中DOM元素的获取get方法

我就叫李二毛

2017-01-13 00:05

  回答一下这个问题哈,因为你把参数放到函数外面的时候,参数就变成了全局变量,当你第一次执行的时候,全局变量的值变为1,底下的if判断生效,颜色变为2.这时候函数就结束了。。。不在执行了。就是那个else  if 不执行了,函数已经结束了,并不是两次都是蓝色。 当你点击click的时候,会判断上面的 的全局变量的值,已经是1了。所以。而放在函数内的话,你每点击一次click,都会重新获取val来进行判断,。懂了吗?

写回答 关注

3回答

  • 慕先生4222854
    2017-01-16 17:14:37
    已采纳

    不看文字太乱,没个排版。

    直接上代码!

  • qq_杺難幵_03727737
    2018-03-09 14:27:56

    get()是从0开始的 get(1)就是第二个 所以2就变了颜色

  • 慕粉4310170
    2017-09-20 17:27:02

    var v = $("#animation").val();

        var $aaron = $("#aaron a");

        $("#exec").click(function() {

            


            //通过get找到第二个a元素,并修改蓝色字体

            if (v == "1") {

               $aaron.get(1).style.color = "blue"

               v = 2

            } else if (v == "2") {

                //通过get找到最后一个a元素,并修改字体颜色

                $aaron.get(-1).style.color = "#8A2BE2"

                v = 1

            }

        });

    如果放到外面就是全局变量了。在执行完了v = 1了不会到else if里了   如果想让执行else if就要去在每个语句执行完后给v重新赋值   但是切记是重新赋值  而不是从新定义一个    例如  v = 2;就合适    不能var v = 2;如果这样就是在语句内部有定义了一个变量   希望能帮到你!

jQuery基础(四)—动画篇

jQuery基础教程动画篇,讲解jQuery基础开启动画修炼

85049 学习 · 262 问题

查看课程

相似问题