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而不用担心样式同名?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
mounted不能使用箭头函数
了解一下
this.$el
, 官方文档用 $refs获取dom。 链接