首页 > 解决方案 > 怎么做:“选择所有其他元素,除了这个”

问题描述

我有 6 张卡片用于我们网站的推荐。如果您想阅读整个故事,这些卡片包含一些信息和一个“阅读更多”按钮。该卡确实展开,但我希望它关闭其他卡。

我已经尝试过 .not 元素,但找不到放置它的位置,而且它似乎不起作用

$j=jQuery.noConflict();

jQuery('.readmore').click(function(){  
  jQuery(this).parent().addClass('uitgeklapt');
  jQuery(this).parent().not(this).addClass('weg');
});
.uitgeklapt {
  width:100%;
  height:530px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cart left">
  <img class="image" src="https://checkbuster.com/wp-content/uploads/2019/08/BA-Group-1.png">
  <p class="tekst">Lorem ipsum dolor sit amet, consetetur</p>
  <p class="readmore">Read more</p>
  <p class="sluiten">Close</p>
</div>

我希望当一个人按下“阅读更多”时,它会向其他 div 添加一个“不显示”的类。

编辑:

我已经添加了

jQuery('.readmore').click(function(){  
  jQuery(this).parent().addClass('uitgeklapt');
  jQuery(".cart").not($(this).parent()).addClass('weg');
  });

然而,它并没有给其他卡类“weg”

标签: jquery

解决方案


很简单:

var $myOwnCart = $(this).closest(".cart");
$(".cart").not($myOwnCart);

https://api.jquery.com/closest/


这也可以:

$(".cart").not($(this).parent());

但我更喜欢.closest().parent()因为前者不会因为您<div>出于某种原因在 HTML 中添加了一个级别而停止工作。


推荐阅读