<!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简单解决
堂堂堂堂糖糖糖童鞋
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>
添加回答
举报
0/150
提交
取消