vue组件中用JS获取DOM的classname,如何确保获取的classname是唯一的?

发布于 2022-09-11 15:52:34 字数 593 浏览 15 评论 0

问题不好描述,我举个例子说明,比如下面一段代码是页面头部的:

<template>
  <div class="header">
    ...
  </div>
</template>
<script>
export default {
  mounted: ()=>{
    document.getElementsByClassName('header')[0].style.colro='red'
  }
}
</script>
<style scoped>
  .header {
    background: #999999;
  }
<style>

上面的代码style中因为加入了scoped,所以不用担心页面中其他地方使用了相同的classname(.header),这里的.header样式一定是指向本组件中的header。可是如果想用JS控制header样式就不好办了,如果页面其他地方也有个header样式那么document.getElementsByClassName('header')[0]可能就不是我想要选择的DOM,请问怎么才能用JS控制DOM而不用担心样式同名?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不念旧人 2022-09-18 15:52:34

mounted不能使用箭头函数

愁以何悠 2022-09-18 15:52:34

了解一下 this.$el, 官方文档

抚你发端 2022-09-18 15:52:34

用 $refs获取dom。 链接

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文