获取不到html页面上的元素,Vue v-for渲染页面,获取不到DOM元素解析

v-for 渲染循环渲染页面的出现让我们告别了繁琐的JS拼接,在开发上面节省了很多时间。

近期在开发中发现了在某些特定情况下,出现了获取不到渲染出来的DOM元素的情况,原因身为小白的我暂时还没搞清楚(忘大佬指出),但是却得出来初步的解决方案。

HTML 代遇新是直朋能到码

{{item.age}}

JS 代码(错误代码比抖朋要插支一圈不者地)

// 错误代码示例一

var vm = new Vue({

el: '#app',

data: {

abc: new Object()

},

mounted: function () {

this.getList();

var li = document.querySelectorAll('li');

console.log(li.length); // 输出0

},

methods: {

getList: function () {

var data = [

{ name: '1', age: '21' },

{ name: '2', age: '22' },

{ name: '3', age: '23' },

{ name: '4', age: '24' },

{ name: '5', age: '25' }

];

this.$set(this, 'abc', data);

}

}

})

// 错误代码示例二

var vm;

window.onload = function(){

vm = { ... } // 实例化代码如上,去除 mounted 生命周期

vm.getList();

var li = document.querySelectorAll('li');

console.log(li.length); // 输出0

}

上述代码中的 li 即是通过 v-for 渲染生成,但是两种方式获取 li 输出的长度都为0。

最终发现将数据初始化放到 beforeMount 里面即可在 mounted 里面正确输出获取到 li 元素的长度。

JS 代码(解决方案比抖朋要插支一圈不者地)

// 解决方案一(数据初始化放在挂载之前)

var vm = new Vue({

el: '#app',

data: {

abc: new Object()

},

beforeMount: function(){

this.getList();

},

mounted: function () {

var li = document.querySelectorAll('li');

console.log(li.length) // 输出5

},

methods: {

getList: function () {

var data = [

{ name: '1', age: '21' },

{ name: '2', age: '22' },

{ name: '3', age: '23' },

{ name: '4', age: '24' },

{ name: '5', age: '25' }

];

this.$set(this, 'abc', data);

}

}

})

// 解决方案二(mounted周期里面使用VUE自带钩子函数$nextTick做处理)

mounted: function () {

this.getList();

this.$nextTick(function () {

var li = document.querySelectorAll('li');

console.log(li.length) // 输出 5

})

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2

Android蓝牙4.0 Ble读写数据详解 -2上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑。先介绍一款调试工具,专门调试Ble蓝牙的app。名字叫:nRF-Connect 谷歌应用商店也能下载到。这里我先连接一个蓝牙设备 贴几个截图。UUID的…

选择座位html,影厅座位预览效果(css3)_html/css_WEB-ITnose

查看 demo 下载源码你可能对那些购买时需要选择座位的订票系统比较熟悉。通常在比赛,电影,搏击或者演唱会售票的时候需要这样做。如果能有一种座位的预览效果该有多酷啊,比如能够从你选择的位置的角度去预览舞台或者屏幕。这个问题引出了今天…

html 使用百度搜索,百度搜索uzer,进入主页

windows7的uzer.me怎么 安全上网百度搜索uzer,进入主页下载完成以后,点击,快捷方式,运行。登陆后,首先出现的是文档库,点击文档库。UZER上的软件和文件都打不开,网络没问题。因为安装的软件版本…

php广告任务网源码_THINKPHP仿我爱广告任务网|任务网站源码下载

Thinkphp仿我爱广告任务网网站源码下载,基于PHPMYSQL开发制作的在线广告打码任务网站源码,底层内核为THINKPHP,大体完整!有需要的朋友可下载尝试下!安装环境:php5.3以上 mysql5.6安装方法:1、导入根目录下…

2021曲靖高考成绩查询时间,2021年曲靖高考成绩排名及成绩公布时间什么时候出来...

曲靖高考结束后,每年都有很多家长和考试不知道曲靖高考成绩排名如何查询、曲靖高考成绩什么时候公布以及查询方式,本文小编整理了曲靖高考成绩查询排名的相关知识。一、曲靖高考成绩公布时间及查询方式根据往年曲靖高考成绩公布时间预测,2021…

lisp 读取样条曲线座标点_如何在lisp中求一条直线和一条曲线的交点

★快捷命令的命名规律 1、 快捷命令通常是该命令英文单词的第一个或前面两个字母,有的是前三个字母。比如,直线(Line)的快捷命令是“L”;复制(COpy)的快捷命令是“CO”;线型比例(LTScale)的快捷命令是“LTS”。 在使用过程中&…

uniapp打包成html5包个ios壳,HBuilder之uni-app打包App方法

HBuilder是DCloud(数字天堂)推出的一款支持HTML5的Web开发IDE。该软件既可以支持web代码编写,也可以将已经编写好的项目代码打包为手机APP。HBuilder提供的打包有云端打包和本地打包两种,云端打包的特点是DCloud官方配置好了原生的打包环境,可…

笔记本超频会烧吗_笔记本电脑cpu超频是什么意思?超频会怎样啊?

展开全部CPU超频的意思是人为提高CPU的外频或倍频,32313133353236313431303231363533e78988e69d8331333431373933使之运行频率得到大幅提升。超频后CPU的运算速度会提高。超频的主要后果是会导致系统不稳定、系统温度升高甚至损毁硬件,即使超频后能稳定地…

计算机专业能评电子工程师吗,计算机工程师职称 评定条件

专业技术人员计算机应用能力认证简章职称计算机模块,计算机职称报名,职称评审计算机考试。“专业技术人员计算机应用能力”是由中华人民共和国人事部统一组考和颁发注册的计算机应用能力认证。职称计算机模块,计算机职称报名,职称…

adpater里写toast_如何在Android中显示Toast?

要在您的应用程序中显示Toast,请尝试以下操作:Toast.makeText(getActivity(), (String)data.result,Toast.LENGTH_LONG).show();另一个例子:Toast.makeText(getActivity(), "This is my Toast message!",Toast.LENGTH_LONG).show()…

html编译圣诞情缘,H5+JS+CSS3 实现圣诞情缘

绘制形状在svg中绘制多边形的标签是polygon,这是SVG中定义的基本形状,可以通过polygon的points绘制出多边形组成的坐标点,points 属性定义多边形每个角的 x 和 y 坐标。多边形至少要有3个边,所以points至少要定义3组坐标才能创建一…

a标签跳转后返回原页面 layui_layui页面操作,点击一个添加页面,跳转有确定,然后点击确定后将选择的几个数据返回前一个页面获取值,然后ajax请求后台...

custUserIndex.html [添加页面代码]受试者用户邮箱完成时间批量上传开始考试生成报告查看报告编辑删除layui.config({base: /layuiadmin/ //静态资源所在路径}).extend({index: lib/index //主入口模块}).use([index,laydate, table], function(){var $ layui.$,form layui.f…

html标签info,HtmlTrInfo 元素

HtmlTrInfo 元素HtmlTrInfo element3/9/2015本文内容适用于: SharePoint 2016 |SharePoint Foundation 2013 |SharePoint Online |SharePoint Server 2013Applies to: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013在…

ssm项目集成ftp_ssm开发旅游信息管理系统,包括前台和后台

项目描述这是一个旅游管理系统。系统主要有2个角色,分别是普通用户和管理员。普通用户可以进行登录注册,查看或修改个人信息,检索和浏览旅游产品信息,产品下单,订单详情查看、定制出行、咨询客服等操作,而网…

计算机网络职业生涯规划书模板前言,计算机网络技术专业个人职业生涯规划书(参考模板).doc...

计算机网络技术专业个人职业生涯规划书(参考模板)一、前 言——及时规划职业,做自己人生之舟的船长亚里士多德曾说过:“人是一种寻找目标的动物,他生活的意义仅仅在于是否正在寻找和追求自己的目标。”而这目标有大有小,有短期的也…

mac 黑窗口连接mysql_mac上终端起动MySQL的方法

我下载了5.6.11的dmg然后安装,安装完成之后..如果要用终端去玩SQL.那么一开始要输入很长的:/usr/local/mysql/bin/mysql这不方便啊,好想像windows下的cmd里面一样输入mysql -uroot -p1这样...上网查了下..可以实现滴.打开终端,输入:1)alias mysql/usr/local/mysql/bin/mysql2)a…

在微型计算机中1 mb准确等于几个字,2010安徽省计算机等级考试二级试题及答案...

1、计算机最主要的工作特点是( A )A、程序存储与自动控制 B、高速度与高精度C、可靠性与可用性 D、有记忆能力2、表示字符的连续两个字节为31H,41H,则( D )A、一定是1个汉字的国标码B、一定是两个西文的ASCII码C、一定不是1个汉字的国标码D、可能是两个西…

uds帧格式_如何看懂UDS诊断报文

UDS介绍UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray, Ethernet 和 K-line)上实现。UDS协议的应用层定…

彭山计算机培训,彭山2021年初中生学计算机

建校以来,我校一直秉承“让每一个学生具备生存发展的能力,让更多学生体验成功”的办学理念,坚持“诚信、务实、精技、立业”和“先做人、后做事”为校训,多年来优秀的办学质量和成绩屡获***、教育主管部门、专家、家长等社会各界的…

function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...

Matlab函数进阶:使用匿名函数(Anonymous Function)和内嵌函数(Nested Function)处理多变量传递问题(Matlab 7.0以上)问题:有一个多变量函数f(abcx),现需要分别在aa0bb0cc0和aa1bb1cc1的条件下对f(abcx)进行某一操作。此类问题常在数值积分时出现。解决方…