2012-09-14 35 views
1

问题简而言之:我试图在你点击的元素上做一个简单的显示/隐藏切换工作,而现在所有(13)divs都受到该函数的影响。每格的jQuery的多个相同的div,而不使用唯一的ID?

结构看起来像这样

<div class="selectbox"> 
    <h5>Title</h5> 
    <p> 
     Content 
    </p> 
</div> 

有了这个jQuery代码

$('.selectbox h5').click(function(){ 
     $('div.selectbox,p,span').toggle(); 
     $('.selectbox').toggle(); 
    }); 

所以现在,jQuery的作品。但显然,它的工作在页面上的每个“选择框”div上。我怎样才能使这项工作只是我点击的元素,没有使用每个“选择框”div的唯一ID?

回答

4
$('.selectbox h5').click(function(){ 
    $(this).parent().find('p,span').toggle(); 
    $(this).parent().toggle(); // this line should probably be removed 
}); 
+0

的 'P,跨度' 行也不是一无是处;) 完美的作品,你的贴吧,但也不是没有这条线 –

+0

我想知道。在这种情况下,最后一行可能不需要(如果你想切换回去的话)。 –

+0

你想要的东西似乎是[this](http://jsfiddle.net/SJV3m/)。我错了吗 ? –

1

使简单..

,如果你想父DIV切换就用 $(this).parent().toggle(); 在你的函数。 体育课:如果你想在你的DIV的<p>工作,你可以解决它像$('p', $(this).parent()).toggle();

2

您可以使用关键字this在你的函数,它代表触发事件的项目。在这种情况下你的H5。

$('.selectbox h5').click(function(){ 
     $(this).closest('.selectbox').toggle(); 
    }); 
3

使用$(this) -

$('.selectbox h5').click(function(){ 

    $(this).closest('.selectbox, p, span').toggle(); 
    //$('.selectbox').toggle(); 

}); 
+1

我们同时发布了相同的解决方案。我无法抗拒upvoting你的答案:) –

相关问题