vue 获取元素额外生成的data-v-xxx操作


Posted in Javascript onSeptember 09, 2020

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, "")】

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操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
JS 的应用开发初探(mootools)
Dec 19 Javascript
探索Emberjs制作一个简单的Todo应用
Nov 07 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
Vue.js 和 MVVM 的注意事项
Nov 07 Javascript
关于Vue.nextTick()的正确使用方法浅析
Aug 25 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
5 种JavaScript编码规范
Jan 30 Javascript
深入浅析Node环境和浏览器的区别
Aug 14 Javascript
Node.js Buffer模块功能及常用方法实例分析
Jan 05 Javascript
详解Node.js使用token进行认证的简单示例
May 25 Javascript
vue移动端写的拖拽功能示例代码
Sep 09 #Javascript
vue路由的配置和页面切换详解
Sep 09 #Javascript
JavaScript 实现下雪特效的示例代码
Sep 09 #Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 09 #Javascript
vue+高德地图实现地图搜索及点击定位操作
Sep 09 #Javascript
vue实现几秒后跳转新页面代码
Sep 09 #Javascript
JS异步宏队列微队列原理详解
Sep 09 #Javascript
You might like
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
Pycharm配置远程调试的方法步骤
2018/12/17 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
商务日语专业自荐信
2014/04/17 职场文书
大学生求职信范文
2014/05/24 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
万能检讨书2000字
2014/10/17 职场文书
会议通知范文
2015/04/15 职场文书
初中班主任心得体会
2016/01/07 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android