怎么做:“选择所有其他元素,除了这个”
Posted
技术标签:
【中文标题】怎么做:“选择所有其他元素,除了这个”【英文标题】:How to do: "select all other elements, except this one" 【发布时间】:2019-08-14 12:52:16 【问题描述】:我有 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”
【问题讨论】:
嗨@Bram Werink,我认为你有多个相同的父母阅读更多 嗨@Bram Werink,详细说明你阅读了更多的div并解释清楚,我们无法找到哪个是父级,哪个是兄弟级, 这样解释***.com/questions/437958/… 【参考方案1】:很简单:
var $myOwnCart = $(this).closest(".cart");
$(".cart").not($myOwnCart);
https://api.jquery.com/closest/
这也可以:
$(".cart").not($(this).parent());
但我更喜欢.closest()
而不是.parent()
,因为前者不会因为您出于某种原因在html 中添加了<div>
级别而停止工作。
【讨论】:
我现在有这个jQuery('.readmore').click(function() jQuery(this).parent().addClass('uitgeklapt'); jQuery(".cart").not($(this).parent()).addClass('weg'); );
"weg" 有一个 "display:none;"但其他卡片仍然出现。
啊问题是美元符号,必须在 wordpress @Tomalak 中将其更改为“jQuery”
啊,好的。按照惯例,jQuery
的别名为 $
,但有些设置并非如此。以上是关于怎么做:“选择所有其他元素,除了这个”的主要内容,如果未能解决你的问题,请参考以下文章