jQuery - If DIV class equals X, hide all other DIVs with a different class
我是jQuery的新手,相当新的JS(一点知识),我想创建一个jQuery代码。
首先,这是我的HTML代码:
1 2 3 4 5 6 7 8 9 10 11 | All ASUS HTC Nexus 7 One S One X+ Transformer Prime Windows Phone 8X |
我想要一个jQuery代码,它将执行以下操作:
如果我点击#choice-asus DIV,那么所有带有.htc类的DIV都将被设置为display ="none"
如果我点击#choice-htc DIV,那么所有带有.asus类的DIV都将被设置为display ="none"
如果我单击#choice-all DIV,那么所有DIV都将设置为display ="inline-block"(这也是页面首次加载时的默认设置)
我已经尝试过以下代码,但它没有做任何事情。
1 2 3 4 5 | $(document).ready(function(){ $("#choice-htc").click(function(){ $(".htc").hide(); }) }); |
感谢您的任何帮助,
迪伦。
这么多选择:) http://jsfiddle.net/9RtUE/
1 2 3 4 5 6 7 | $(function(){ $("#user-controls").on('click','div',function(){ var classToShow = this.id.split('-')[1], filter = classToShow ==="all" ? 'div': '.' + classToShow; $("#devices").children().show().not(filter).hide(); }); }); |
您可以尝试以下代码 -
1 2 3 4 5 6 7 8 9 10 11 | function showAll(){ $("#devices div").show(); } function justASUS(){ $("#devices div").hide(); $("#devices .asus").show(); } function justHTC(){ $("#devices div").hide(); $("#devices .htc").show(); } |
在这里演示。
1 2 3 4 5 6 | $(document).ready(function(){ if($('div').attr('class')=='X') { $('div').not($(this)).css('display','none'); } }); |
为了保持简单和清洁,你应该使用这样的解决方案
1 2 3 4 5 | $(function(){ $('#choice-asus').on('click', function(){ $('#devices > div:not(.asus)').hide(); }); }); |
它基本上说,如果你点击#choice-asus,隐藏#devices中没有类asus的所有div。
您可以根据自己的需要扩展/修改它。
此外,它建议使用jquerys .on()方法代替click / bind或者你应用的处理程序。
在这里演示
1 2 3 4 5 6 7 8 9 10 11 12 | $(document).ready(function(){ $(".choice").click(function(){ $(".android,.winph").hide(); if($(this).attr("id")=="choice-all"){ $(".android,.winph").show(); }else if($(this).attr("id")=="choice-asus"){ $(".asus").show(); }else if($(this).attr("id")=="choice-htc"){ $(".htc").show(); } }); }); |
尝试使用jquery
演示
1 2 3 4 5 6 7 8 9 10 11 12 13 | $('#choice-all').click(function(){ $('.htc, .asus').show(); }); $('#choice-asus').click(function(){ $('.asus').show(); $('.htc').hide(); }); $('#choice-htc').click(function(){ $('.htc').show(); $('.asus').hide(); }); |