比如我现在有3个单选框分别为1,2,3,默认值分别为1000,1300,1600,当我点击第一个时候,2,3分别加300,加600,当点击到第2个,1,3分别是减300,加300,如此类推;求各位大神解决小弟问题,求源码
2 回答

SoAanYip
TA贡献20条经验 获得超1个赞
③:
aRadio[i].value=parseInt(aRadio[i].value)+(i-currrentIndex)*300;
这里由于value的值是string型所以要转换一下。而-=能使用是因为执行-的时候js会自己去尝试转变类型。

SoAanYip
TA贡献20条经验 获得超1个赞
代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>a</title> <style type="text/css"> </style> </head> <body> <div id="radioDiv"> <input type="radio" name="radio" value="1000"/><label>1000</label> <input type="radio" name="radio" value="1300"/><label>1300</label> <input type="radio" name="radio" value="1600"/><label>1600</label> </div> <script src="jquery-1.10.2.min.js"></script> <script> $(function(){ $('#radioDiv').on('click','input',function(ev){ var that = this; var currrentIndex; var aRadio = document.getElementsByTagName('input'); var aLabel = document.getElementsByTagName('label'); var size = aRadio.length; for(var i = 0;i<size;i++){ if(that === aRadio[i]){ currrentIndex = i; break; } } for(var i = 0;i<size;i++){ if(i<currrentIndex){ aRadio[i].value-=(currrentIndex-i)*300; aLabel[i].innerHTML = aRadio[i].value; } if(i>currrentIndex){ aRadio[i].value=parseInt(aRadio[i].value)+(i-currrentIndex)*300; aLabel[i].innerHTML = aRadio[i].value; } } }) }) </script> </body> </html>
①:radioDiv里面多少个input应该都没问题。
②:label标签其实是需要加for的,我偷懒了。
添加回答
举报
0/150
提交
取消