jQuery选择器不是这个孩子

前端之家收集整理的这篇文章主要介绍了jQuery选择器不是这个孩子前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有任何方法可以将click事件附加到多个元素,然后将所有子元素都添加到该元素中,除了THIS(单击一个)的子元素以运行函数

这是一个可怕的解释,但我正在寻找这样的事情:

  1. $(".block_header").click(function(){
  2. $(".block_header span:not(this span)").toggleClass("collapse expand");
  3. $(".container:not(this+div.container)").slideToggle();
  4. });

这是一个示例HTML:

  1. <h3 id="sender_header" class="block_header"><span>Sender</span></h3>
  2. <div id="sender_container" class="container">
  3. <p>Show or hide this,based on which H3 is clicked.</p>
  4. </div>
  5. <h3 id="receiver_header" class="block_header"><span>Receiver</span></h3>
  6. <div id="receiver_container" class="container">
  7. <p>Show or hide this,based on which H3 is clicked.</p>
  8. </div>
  9. <h3 id="delivery_header" class="block_header"><span>Delivery</span></h3>
  10. <div id="delivery_container" class="container">
  11. <p>Show or hide this,based on which H3 is clicked.</p>
  12. </div>
  13. <h3 id="items_header" class="block_header"><span>Items</span></h3>
  14. <div id="items_container" class="container">
  15. <p>Show or hide this,based on which H3 is clicked.</p>
  16. </div>
  17. .... etc,etc (many more of the same)

希望这不是太复杂.它会省去很多代码.

解决方法

您可以使用 not()函数,而不是排除选择器中的元素,该函数接受要从jQuery集中删除的DOM元素或jQuery对象.
  1. $(".block_header").click(function(e) {
  2. $('.block_header span').not($(this).find('span')).toggleClass("collapse expand");
  3.  
  4. $('.container').not($(this).next()).slideToggle();
  5. });

猜你在找的jQuery相关文章