猿问

js实现购物车数量加减

<style>

input{width:100px; height:32px;}

span{display:inline-block;height:32px;width:32px;text-align:center;line-height:32px;border:1px solid red;margin-top:15px;}


</style>

</head>



<body>

<script>

window.onload=function(){

numWay();

}

function numWay(){

var num_box=document.getElementById("menu_carge");

var spans=num_box.getElementsByTagName("span");

var input=document.getElementById("num");

var val=parseInt(input.value);

for(var i=0; i<spans.length;i++){

spans[i].onclick=function(){

if(spans[i].className=="plus"){

input.value=val+1;

}

else{

input.value=val-1;

}

}

}

}


</script>

<div id="menu_carge"><span class="cut">-</span><input type="text" id="num" value="1" /><span class="plus">+</span></div>

为什么没有办法运行加减呢,哪里有问题,求指导。

thrmagic
浏览 6270回答 4
4回答

李晓健

function numWay(){     var num_box=document.getElementById("menu_carge");     var spans=num_box.getElementsByTagName("span");     var input=document.getElementById("num");     for(var i=0; i<spans.length;i++){         spans[i].onclick=function(){             var val=parseInt(input.value);             if(this.className=="plus"){                 input.value=val+1;             }             else{                 input.value=val-1;             }         }     } }

狂飙的蜗牛_1

李小建的代码是对的,作用域问题

lynhao

作用域的问题哦~

lynhao

我用最原始的写法可以的,估计是你那个嵌套的function写错了 function numWay() {     var num_box=document.getElementById("menu_carge");     var spans=num_box.getElementsByTagName("span");     var input=document.getElementById("num");     var val=parseInt(input.value);     for(var i=0; i<spans.length;i++){             if(spans[i].className=="plus"){                 input.value=parseInt(val+1);             }             else{                 input.value=parseInt(val-1);             }     } } <span class="cut" onclick="numWay()">-</span> <input type="text" id="num" value="1" /> <span class="plus" onclick="numWay()">+</span>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答