Uncaught TypeError: Cannot set properties of undefined

Uncaught TypeError: Cannot set properties of undefined ,第1张

错误出现的前提:

        页面中的Table每一行有一个删除按钮,当删除此行数据之后,需要对序号的值进行动态的更新(在另一篇文章中)。

        当执行了删除 *** 作 -> 再次添加新的数据 ->执行删除 *** 作的时候就会出现标题中的错误。

解决方向: 思路一:加载时

        由于页面加载顺序为:结构>样式>行为(html>css>JavaScript)。

        如果js部分写到了页面内容的前面,那么在加载的时候,浏览器的加载顺序(错误顺序)是js>html,所以就有可能报标题中的错误。

解决办法一:

        将js挪到最下面就好啦!

但是我的js确实是写在最下面的,所以并不是这种错误。

思路二:

        既然可能是加载的问题,那会不会是我在删除tr之后,程序还未反应过来?那是不可以让其等待一段时间之后再进行序号的排序。

setTimeout(function(){
	sortOrder();
}, 3000);

        但是经过实践证明,这种思想是错误的,因为我的程序这么简单,而且就算很大也不会有延迟吧。

思路三:

        在经过长时间的百度百度百度.....依旧没有解决之后。在网页中随意点击table的源代码的时候,突然发现有一行tbody中有一行空白的tr,这是为什么呢?

        原因:我的模块是当重新进行选人员之后,点击确定之后会先删除掉原来的table中所有的信息,再将挑选的人员信息添加到table中。

使用的代码:
//该方式只是将内容清空,但是并不会删除tr
//会有一个空白的tr
$(".table-bordered  tr:not(:first)").html("");
//该方式就会将其table中的tr删除掉而不是清空
$(".table-bordered  tr:not(:first)").remove();
//两种方式都设定了不删除第一行也就是表头

        由于一开始删除table中的行时,选错了方式,一直有一个空白行,所以也导致了程序会给空白行指定单元格添加序号,但是由于是空白行没有td,所以导致了报错。

        换成了第二种删除方法,就不会有空白的tr了,问题也随之解决了。

        所以出现这个错误也不一定都是数据加载的问题,还有这种隐藏的小问题。emmmmm.........以后再写会注意的!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/874557.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存