例如
<div id="red">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
<div id="blue">
<div id="sub" class="one"></div>
<div id="sub" class="two"></div>
<div id="sub" class="three"></div>
</div>
当我点击.one时,显示#sub.one,相同的类名。感谢
首先,您不应该在页面上重复id
,所以我重新构造了您的HTML:
<div id="red">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
<div id="blue" class="sub">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
然后,您可以执行以下操作:
$('#red').on('click', 'div', function(ev){
$('.sub div').hide();
$('.sub .' + $(this).attr('class')).show();
});
试试这个
<div id="red">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
<div id="blue">
<div class="sub one"></div>
<div class="sub two"></div>
<div class="sub three"></div>
</div>
$('.one').click(function(){
$('.sub').hasClass('one').show();
});
<div id="red">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
<div id="blue">
<div id="one" class="sub"></div>
<div id="two" class="sub"></div>
<div id="three" class="sub"></div>
</div>
$().ready(function(){
$('.sub').hide();
$('#red>div').click(function(){
$('#' + $(this).attr('class')).show();
});
});
试试这种方法,代码更少,工作更多:
jQuery:
$(function(){
$('#red div').click(function(){//divs inside #red
var takeClass = (this).attr('class');//takes clicked element's class
//inside #blue div
$('#blue .'+takeClass).show();//show's div which got clicked element's class
// if clicked element's class is 'one', this will show '#blue .one'
});
});
你的html:
<div id="red">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
<div id="blue">
<div id="sub" class="one"></div>
<div id="sub" class="two"></div>
<div id="sub" class="three"></div>
</div>
>JSFIDDLE<lt
我建议使用toggle而不是show,就像这样:
jQuery
$(document).ready(function() {
$("#blue div").hide();
$("#red div").click(function() {
var redClass = $(this).attr("class");
$("#blue ." + redClass).toggle();
});
});
HTML结构:
<div id="red">
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</div>
<div id="blue" class="sub">
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</div>