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 相关文章推荐
仿服务器端脚本方式的JS模板实现方法
Apr 27 Javascript
JS启动应用程序的一个简单例子
May 11 Javascript
经典海量jQuery插件 大家可以收藏一下
Feb 07 Javascript
按钮JS复制文本框和表格的代码
Apr 01 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
Jan 22 Javascript
jQuery检测某个元素是否存在代码分享
Jul 09 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
认识Knockout及如何使用Knockout绑定上下文
Dec 25 Javascript
easyui form validate总是返回false的原因及解决方法
Nov 07 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
Apr 17 Javascript
react实现同页面三级跳转路由布局
Sep 26 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
菜鸟修复电子管记
2021/03/02 无线电
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
mysq GBKl乱码
2006/11/28 PHP
深入php中var_dump方法的使用详解
2013/06/24 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
php创建无限级树型菜单
2015/11/05 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
一步步教你用Python实现2048小游戏
2017/01/19 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
2016庆祝教师节新闻稿
2015/11/25 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
解决redis批量删除key值的问题
2022/03/23 Redis