关于jq操作radio问题

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

Deng-Min-Qing
浏览 1773回答 2
2回答

SoAanYip

③:aRadio[i].value=parseInt(aRadio[i].value)+(i-currrentIndex)*300;这里由于value的值是string型所以要转换一下。而-=能使用是因为执行-的时候js会自己去尝试转变类型。

SoAanYip

代码:<!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的,我偷懒了。
打开App,查看更多内容
随时随地看视频慕课网APP