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 相关文章推荐
JavaScript在IE中“意外地调用了方法或属性访问”
Nov 19 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
简体中文转换繁体中文(实现代码)
Dec 25 Javascript
jquery防止重复执行动画避免页面混乱
Apr 22 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
Jun 05 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
JavaScript比较同一天的时间大小实例代码
Feb 09 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
Jul 12 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
Jul 27 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
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
Django Form常用功能及代码示例
2020/10/13 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
工业学校毕业生自荐书
2014/01/03 职场文书
物业工作计划书
2014/01/10 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
六查六看剖析材料
2014/10/06 职场文书
会计试用期自我评价
2015/03/10 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android