radios组件
myRadio .css
*{padding: 0;margin:0;} span{background: url(images/no.gif) no-repeat;padding-left: 20px;} .active{background: url(images/yes.gif) no-repeat;padding-left: 20px;} input[type=radio]{display: none;} myRadio .js
(function (){ var addLink=false; window.myRadio=function (aInp) { if (!addLink) { addLink=true; var oLink=document.createElement('link'); oLink.href='myRadio.css'; oLink.rel='stylesheet'; var oHead=document.getElementsByTagName('head')[0]; oHead.appendChild(oLink); } var aSpan=[]; for (var i=0; i<aInp.length; i++) { var oSpan=document.createElement('span'); oSpan.innerHTML=aInp[i].getAttribute('data-tit'); aSpan.push(oSpan); aInp[i].parentNode.insertBefore(oSpan,aInp[i]); if (aInp[i].checked) { aSpan[i].className='active'; } } for (var i=0; i<aSpan.length; i++) { (function (index){ aSpan[i].onclick=function (){ for (var i=0; i<aSpan.length; i++) { aSpan[i].className=''; } aSpan[index].className='active'; aInp[index].checked=true; }; })(i); } } })(); radios.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>agosto</title> <style> </style> </head> <script src="myRadio.js"></script> <script> window.onload=function (){ var sex=document.getElementsByName('sex'); var blod=document.getElementsByName('blod'); myRadio(sex); myRadio(blod); }; </script> <body> <form action="test.html" method="get"> <!-- <span class="active">男</span> <span>女</span> --> <input type="radio" name="sex" value="male" checked data-tit="男"/> <input type="radio" name="sex" value="female" data-tit="女"/> <input type="submit" value="提交"/> <hr/> <input type="radio" name="blod" value="o" checked data-tit="O型" /> <input type="radio" name="blod" value="B" data-tit="B型" /> <input type="radio" name="blod" value="A" data-tit="A型" /> <input type="radio" name="blod" value="AB" data-tit="AB型" /> <input type="submit" value="提交" /> </form> </body> </html>