时间:2021-05-26
需求描述:由于样式中使用了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, "")】
var nodeP = document.createElement("p"),nodeSpan = document.createElement("span");// 获取data-v-xxxx的值var dataV = document.getElementById("dialog_submit").attributes[0].name;// 设置属性nodeP.setAttribute(dataV, "");nodeSpan.setAttribute(dataV, "");【补充知识】
当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。编译时将生成data-v-xxx属性,如下的“data-v-2bc3d899”就是因为加了scoped.
<style scoped>.title { color:blue;}</style> <template> <div class="title">hello</div></template>上述代码被编译为:
<style>.title[data-v-f3f3eg9] { color: blue;}</style> <template> <div class="title" data-v-f3f3eg9>hello</div></template>使用 scoped 后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的 scoped CSS 和子组件的 scoped CSS 的影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式。
深度作用选择器:
如果希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,可以使用 >>> 操作符:
<style scoped>.a >>> .b { }</style>上述代码被编译为:
.a[data-v-f3f3eg9] .b { }
参考:https://vue-loader.vuejs.org/zh/guide/scoped-css.html
补充知识:vue 自定义属性 data-v,closest 获取事件源外层元素
在遇到使用e.target 的时候,通常会传一个参数,比较简单,在此记录一下
使用:data-XXX 来绑定
<div class="custom-tree-node" slot-scope="{ node, data }" :data-id="data.id"</div>获取 :
利用closeet 获取到当前目标元素最近的外层元素含有 custom-tree-node 类名的dom
然后再利用 dataset.id 拿到传的值
async handleTouchEnd (event) { let customNode = event.target.closest('.custom-tree-node') if (customNode) { let data = {} data.id = customNode.dataset.id }}以上这篇vue 获取元素额外生成的data-v-xxx操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用过VUE的童鞋都知道,vue在改变data里面参数可以以直接用this.XXX=XXX,并且视图层也会立即更新呈现,但是这里我想介绍一下微信小程序是怎样操作d
授权登录登录//index.js//获取应用实例varAPPID='xxx'varSECRET='xxx'constapp=getApp()Page({data
当标签有scoped属性时,它的CSS只作用于当前组件中的元素。vue组件编译后,会将template中的每个元素加入[data-v-xxxx]属性来确保sty
大家都知道,用document.getElementById(‘element').style.xxx可以获取元素的样式信息,可是它获取的只是DOM元素styl
v-model指令在表单控件元素上创建双向数据绑定,所谓双向绑定,指的就是我们在js中的vue实例中的data与其渲染的dom元素上的内容保持一致,两者无论谁被