使用 Javascript 或 jquery 检查 div 的父 div 是否包含特定的类名

Check with Javascript or jquery if the parent div of a div contains a specific class name

提问人:Lukas Schwarzenbacher 提问时间:6/18/2023 最后编辑:Lukas Schwarzenbacher 更新时间:6/18/2023 访问量:30

问:

我在一组 div 中有一个文本。如果有人点击该文本,我必须知道类为“div1”的第四个父 div 是否包含类名“exampleclass”。

我的 HTML:

<div class="div1 exampleclass">
  <div class="div2">
    <div class="div3">
      <div class="div4">
        <div class="5">
          Text
        </div>
      </div>
    </div>
  </div>
</div>

 <div class="div1">
  <div class="div2">
    <div class="div3">
      <div class="div4">
        <div class="5">
          Text
        </div>
      </div>
    </div>
  </div>
</div>

<div class="div1">
  <div class="div2">
    <div class="div3">
      <div class="div4">
        <div class="5">
          Text
        </div>
      </div>
    </div>
  </div>
</div>

我试图用下面的jquery/javascript来解决这个问题:

if ($(this).closest('.div1').classList.contains('exampleclass') {
  console.log ('found');
}

当我可以使用 id 时,它会起作用,但我不能,因为 id 是随机的,而且在加载站点之前我不知道它们。有没有人知道如何解决这个问题?

JavaScript jQuery 接近

评论

0赞 Fabien Auréjac 6/18/2023
您可以尝试使用 .parents(selector) 而不是 nearest 方法并检查返回的数组的长度。if ($(this).parents('.exampleClass').length>0) { console.log ('found');

答:

1赞 cytek04 6/18/2023 #1

classlist.contains不是 jQuery 方法。用。.hasClass()

if ($(this).closest('.div1').hasClass('exampleclass') {
  console.log ('found');
}

这应该有效。干杯!

0赞 Nick 6/18/2023 #2

我没有睾丸,但你可以做

if(this.closest(".exampleclass")){
      console.log ('found');
}

因为如果选择器没有祖先,则返回 nullclosest().exampleclass

我使用了普通的javascript,但在jquery中非常相似