vue 获取元素额外生成的data-v-xxx操作
需求描述:由于样式中使用了scoped,所以编译后标签对中生成data-v-xxx属性。在【.dialog_content】的div中动态添加元素节点p和span时,也需要给元素节点添加data-v-xxx属性。由于data-v-xxx属性是会变化的,那如何获取它,添加在动态添加的元素节点中呢?本博客将给出解决方案。
【解决方法】
获取属性名【document.getElementById("dialog_submit").attributes[0].name】
设置属性【nodeP.setAttribute(dataV,"")】
varnodeP=document.createElement("p"), nodeSpan=document.createElement("span"); //获取data-v-xxxx的值 vardataV=document.getElementById("dialog_submit").attributes[0].name; //设置属性 nodeP.setAttribute(dataV,""); nodeSpan.setAttribute(dataV,"");
【补充知识】
当
上述代码被编译为:
hello
使用scoped后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的scopedCSS和子组件的scopedCSS的影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。
深度作用选择器:
如果希望scoped样式中的一个选择器能够作用得“更深”,例如影响子组件,可以使用>>>操作符:
.a>>>.b{/*...*/}
上述代码被编译为:
.a[data-v-f3f3eg9].b{/*...*/}
参考:https://vue-loader.vuejs.org/zh/guide/scoped-css.html
补充知识:vue自定义属性data-v,closest获取事件源外层元素
在遇到使用e.target的时候,通常会传一个参数,比较简单,在此记录一下
使用:data-XXX来绑定
获取:
利用closeet获取到当前目标元素最近的外层元素含有custom-tree-node类名的dom
然后再利用dataset.id拿到传的值
asynchandleTouchEnd(event){ letcustomNode=event.target.closest('.custom-tree-node') if(customNode){ letdata={} data.id=customNode.dataset.id } }
以上这篇vue获取元素额外生成的data-v-xxx操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。