有时候我们会用jq写一些特效,jq在控制DOM方面是非常方便的,虽然jq在最近几年没什么进展。

下面就是一个实例图:jq实现多开关效果互不影响_ide

我们可以用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等于零。让它默认显示没被选中。

jq实现多开关效果互不影响_html_02
如果写一个如上的自定义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按钮。