jQuery在多个相同的div上,没有使用唯一的ID?

时间:2012-09-14 14:24:32

标签: jquery jquery-selectors

问题简而言之:我正在尝试对您单击的元素进行简单的显示/隐藏切换工作,而现在所有(13)div都受到该函数的影响。

每个div的结构如下所示

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

使用此jquery代码

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

现在,jquery正常运行。但很明显,它是否适用于页面上的每个“选择框”div。如何才能使我点击的元素而不使用每个“selectbox”div的唯一ID?

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

使用$(this) -

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

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

});

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

简单说明..

如果您希望父DIV切换,那么只需使用 $(this).parent().toggle(); 在你的功能。 p.e。:如果您想使用div中的<p>,可以像$('p', $(this).parent()).toggle();

那样解决它