Jquery 多个类名-如何只查找下一个直接的类名?
我有3个相同结构的展开div。比如:Jquery 多个类名-如何只查找下一个直接的类名?,jquery,Jquery,我有3个相同结构的展开div。比如: <div class="expand"> <h3 class="more">Click to expand</h3> <div class="wrapper">Iasdfgh qwerty zxcvbn</div> </div> 现在,当我单击“单击展开”按钮时,所有的.wrapper都会上下滑动。如何只针对下一个立即的.wrapper,这样一次只能切换一个?可能使用函
<div class="expand">
<h3 class="more">Click to expand</h3>
<div class="wrapper">Iasdfgh qwerty zxcvbn</div>
</div>
现在,当我单击“单击展开”按钮时,所有的.wrapper
都会上下滑动。如何只针对下一个立即的.wrapper
,这样一次只能切换一个?可能使用函数next():
试试这个
$(document).ready(function(){
var toggleButton = $('.expand h3.more');
$(toggleButton).click(function(){
var thisToggleButton = this;
var expandWrap = $(thisToggleButton ).next('.wrapper');
if (expandWrap.is('.closed')) {
$(thisToggleButton ).removeClass('closed');
expandWrap
.removeClass('closed')
.slideDown('slow');
} else {
expandWrap.slideUp('slow', function(){
$(this).addClass('closed');
$(thisToggleButton).addClass('closed');
});
}
});
});
您可以将其简化很多:
$(function(){
$('.expand h3.more').on('click',function(){
$(this).next('div.wrapper').toggle('slow');
});
});
jsFiddle:
编辑:请注意,如果您使用的是较旧版本的jQuery,则必须将上的更改为live
,才能正常工作
$(function(){
$('.expand h3.more').on('click',function(){
$(this).next('div.wrapper').toggle('slow');
});
});