有时候我们会用jq写一些特效,jq在控制DOM方面是非常方便的,虽然jq在最近几年没什么进展。
下面就是一个实例图:
我们可以用jq这样实现:
//html <div id="dd0" alt="0" onclick="changeok('0')"> <img src="images/j.png" alt="" class="j1" /> <img src="images/d.png" alt="" class="true1" /> </div> //js function changeok(a){ var yuans=$('#dd'+a); var isok=yuans.attr('alt'); if(isok==0){ yuans.attr('alt','1').children(".j1").hide(); yuans.children(".true1").show() }else{ yuans.attr('alt','0').children(".true1").hide(); yuans.children(".j1").show(); } }
这里是利用了给每个元素加一个id,这样他们就是独立的一个个体。然后就是利用默认属性alt等于零。让它默认显示没被选中。
如果写一个如上的自定义radio按钮怎么办?
也可以用这样的方法:
<ul class="user ovf"> <li> <img src="images/m.png" alt=""> <div id="dd0" alt="0" onclick="changeok('0')" class="slii"> <img src="images/k.png" alt="" class="k"> <img src="images/t.png" alt="" class="t"> <p>男宝宝</p> </div> </li> <li> <img src="images/g.png" alt=""> <div id="dd1" alt="0" onclick="changeok('1')" class="slii"> <img src="images/k.png" alt="" class="k"> <img src="images/t.png" alt="" class="t"> <p>女宝宝</p> </div> </li> </ul>
function changeok(a){ var yuans=$('#dd'+a); var isok=yuans.attr('alt'); yuans.parent().siblings().children(".slii").attr('alt','0'); if(isok==0){ yuans.attr('alt','1').children(".k").hide(); yuans.parent().siblings().children(".slii").children(".t").hide(); yuans.parent().siblings().children(".slii").children(".k").show(); yuans.children(".t").show() }else{ yuans.attr('alt','0').children(".t").hide(); yuans.parent().siblings().children(".slii").children(".k").hide(); yuans.parent().siblings().children(".slii").children(".t").show(); yuans.children(".k").show(); } }
加上几行代码就改成点击一个,另一个会消除这种样式。类似radio按钮。