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

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

<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而不用担心样式同名?

阅读 6.8k
3 个回答

mounted不能使用箭头函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题