比如我现在有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
提交
取消
