Javascript 为什么hasChildNodes为空节点返回true?
当用户单击“购买”并且购物车中没有任何内容时,应提醒用户,但购物车不会响应。 运行程序时,它表示无法读取未定义的addEventListener的属性。有没有办法解决这个问题和购物车的问题Javascript 为什么hasChildNodes为空节点返回true?,javascript,html,Javascript,Html,当用户单击“购买”并且购物车中没有任何内容时,应提醒用户,但购物车不会响应。 运行程序时,它表示无法读取未定义的addEventListener的属性。有没有办法解决这个问题和购物车的问题 var removeCartItemButtons=document.getElementsByClassName('btn-danger')) 对于(var i=0;i
var removeCartItemButtons=document.getElementsByClassName('btn-danger'))
对于(var i=0;i
运货马车
项目
价格
量
总计
$0
购买
您的问题有两个主要原因
原因#1:
如注释中所述,
hasChildNodes
是一个函数,这意味着它后面需要括号,即hasChildNodes()
原因#2:
要使hasChildNodes()
返回true
,调用方节点必须为空。这意味着它不能包含任何内容,即使是空白
例如:
没有子节点,而
有一个子节点,即空白处
我相应地编辑了您的代码,并且成功了(例如,我将括号添加到了hasChildNodes()
,并删除了空格和换行符,使div变为
)
var removeCartItemButtons=document.getElementsByClassName('btn-danger'))
对于(var i=0;i
运货马车
项目
价格
量
总计
$0
购买
hasChildNodes
是一个函数,因此它应该是hasChildNodes()
。正如上面的代码,它基本上是说“是的,该函数存在”并返回true。我将其更改为“hasChildNodes()”,它似乎仍然无法读取addEventListener的属性。该脚本是在加载页面后运行的,还是如上所述?如果如上所述,则当脚本尝试引用该按钮时,该按钮不存在。不,该脚本在加载页面后正在运行。此处没有发布其他正在工作的内容。我已经将您的代码移到了一个代码段中,这样您就可以在此页面中运行它,唯一的错误是它在hasChildNodes
之后没有空括号。您做到了!非常感谢!