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 相关文章推荐
JQuery小知识
Oct 15 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
Dec 02 Javascript
JavaScript获取文本框内选中文本的方法
Feb 20 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 Javascript
jQuery获取file控件中图片的宽高与大小
Aug 04 Javascript
利用yarn实现一个webpack+react种子
Oct 25 Javascript
Node接收电子邮件的实例代码
Jul 21 Javascript
javaScript日期工具类DateUtils详解
Dec 08 Javascript
JavaScript实现的反序列化json字符串操作示例
Jul 18 Javascript
vue2.0获取鼠标位置的方法
Sep 13 Javascript
全面分析JavaScript 继承
May 30 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
Nov 05 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
获取远程文件大小的php函数
2010/01/11 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php实现telnet功能示例
2014/04/08 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
Javascript之文件操作
2007/03/07 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
python查找第k小元素代码分享
2013/12/18 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python之os操作方法(详解)
2017/06/15 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
django基础学习之send_mail功能
2019/08/07 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
python 回溯法模板详解
2020/02/26 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
爱游人:Travelliker
2017/09/05 全球购物
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
《哪吒闹海》教学反思
2014/02/28 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记