【问题标题】:How can i get correct className from multiple classes in Vanilla Javascript如何从 Vanilla Javascript 中的多个类中获取正确的类名
【发布时间】:2022-01-09 14:54:19
【问题描述】:

我有一个带有单个子元素的父元素。我想根据其类名仅返回父元素的类名。这意味着现在在控制台日志中,我得到了 3 个类。但这里只想要“一个”。因为“父”变量的目标是“.one”类。希望有人可以帮助我。如果你不明白问我,所以我会想出更多的细节。提前致谢。

let parent = document.querySelector(".one");
let correctClass = parent.className;
console.log(correctClass); 
<div class="one two three">
<div class="child-element">Child Element</div>
</div>

【问题讨论】:

  • 如果你知道你想获取的className为什么要从element中获取类名?
  • 只是硬编码console.log("one")?
  • @Yadab 此代码用于我需要此功能的另一个目的。意味着我需要检测同一类父元素。我想出了这段代码来减少混淆。

标签: javascript classname


【解决方案1】:

当您已经知道选择器时,根本不需要访问元素:

const selector = ".one";
const parent = document.querySelector(selector);
const correctClass = selector.slice(1);
console.log(correctClass, parent); 
<div class="one two three">
<div class="child-element">Child Element</div>
</div>

【讨论】:

  • 实际上我的代码是与类对象一起使用的。所以选择器 '.one' 实际上是使用 this 变量来引用。这意味着“.one”实际上由this.parent 持有。当我控制台“this.parent”时,我得到了所有元素。这就是我使用类名的原因。但后来我得到了其他课程和一个。所以我需要检查父类中是否有字符串'one'。希望你能理解。
  • @RenJitsm 也许edit your question 包含实际代码。但仍然不清楚:如果您已经知道想要得到的类名,为什么还要尝试以某种方式计算它?
  • "我需要检查父类中是否包含字符串 'one'。" - 这是一个非常不同的问题,但可以使用返回的 parent.classList.contains('one') 来实现一个布尔值,而不是类名。
  • Bergi,你是对的,由于我的英语不好,解释令人困惑,但你几乎接近解决方案。让我按照你最后的评论做点什么。感谢您的更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 2021-12-06
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多