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

请问下这个代码哪里有问题啊?

请问下这个代码哪里有问题啊?

wudao 2017-12-14 17:47:16
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title></head><body><p>  <button>-</button>  <input type="text" value="1">  <button>+</button></p><p>  <button>-</button>  <input type="text" value="1">  <button>+</button></p><p>  <button>-</button>  <input type="text" value="1">  <button>+</button></p><p>  <button>-</button>  <input type="text" value="1">  <button>+</button></p><script>     //获取元素     var add=document.querySelectorAll('.add');//加法按钮     var subtraction=document.querySelectorAll('.subtraction');//减法按钮     var num=document.querySelectorAll('.num');//数量     var i;//加法操作     for( i = 0; i < add.length; i++)     {        add[i].onclick=function()        {        num.value=num.value * 1 + 1;        }     }//减法操作     for( i = 0; i < subtraction.length; i++)     {        subtraction[i].onclick=function()        {        num.value=num.value * 1 - 1;        }     }</script></body></html>
查看完整描述

2 回答

已采纳
?
堂堂堂堂糖糖糖童鞋

TA贡献101条经验 获得超58个赞

问题一:并没有看到输入框中有class为 num的类名
问题二:num得到的是一个数组需要去对应的下标
问题三:是由问题二引发的,那就是for循环执行完之后 i变成了 4,导致取不到对应的表单元素,可以用 let去声明i简单解决

查看完整回答
反对 回复 2017-12-14
?
堂堂堂堂糖糖糖童鞋

TA贡献101条经验 获得超58个赞

<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title>Document</title>
</head>

<body>
    <p>
        <button class="subtraction">-</button>
        <input class="num" type="text" value="1">
        <button class="add">+</button>
    </p>
    <p>
        <button class="subtraction">-</button>
        <input class="num" type="text" value="1">
        <button class="add">+</button>
    </p>
    <p>
        <button class="subtraction">-</button>
        <input class="num" type="text" value="1">
        <button class="add">+</button>
    </p>
    <p>
        <button class="subtraction">-</button>
        <input class="num" type="text" value="1">
        <button class="add">+</button>
    </p>
    <script>
        // 修改一:为上面的元素添加类型
        //获取元素
        var add = document.querySelectorAll('.add');//加法按钮
        var subtraction = document.querySelectorAll('.subtraction');//减法按钮
        var num = document.querySelectorAll('.num');//数量
        
        //加法操作
        for (let i = 0; i < add.length; i++) { // 修改三:用 let 声明 i
            add[i].onclick = function () {
                num[i].value = num[i].value * 1 + 1; // 修改二:去获取对应的表单元素的值
            }
        }
        //减法操作
        for (let i = 0; i < subtraction.length; i++) {
            subtraction[i].onclick = function () {
                num[i].value = num[i].value * 1 - 1;
            }
        }
    </script>
</body>

</html>


查看完整回答
反对 回复 2017-12-14
  • 2 回答
  • 0 关注
  • 1215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信