Javascript 未捕获类型错误:无法读取属性';在';未定义的
在控制台中,我可以看到Javascript 未捕获类型错误:无法读取属性';在';未定义的,javascript,jquery,Javascript,Jquery,在控制台中,我可以看到releaseLink具有被抓取的正确值(链接)。但在下一行中,当我尝试为它创建一个单击事件时,我在控制台中遇到了以下错误: 未捕获类型错误:无法读取未定义的属性“on” 以下是jQuery: var releaseLink = $( "#release-link")[0]; var previousLink = $( "#prev-link" )[0]; releaseLink.on('click', function(){ console.log('hel
releaseLink
具有被抓取的正确值(链接)。但在下一行中,当我尝试为它创建一个单击事件时,我在控制台中遇到了以下错误:
未捕获类型错误:无法读取未定义的属性“on”
以下是jQuery:
var releaseLink = $( "#release-link")[0];
var previousLink = $( "#prev-link" )[0];
releaseLink.on('click', function(){
console.log('hello. you clicked the release notes link');
});
下面是与之关联的html
<div id="release-notes">
<h3><a id="release-link" href="#">Release Notes</a></h3>
<div id="release-notes"></div>
</div>
<div id="previous-versions">
<h3><a id="prev-link" href="#">Previous Versions</a></h3>
<div id="version-notes"></div>
</div>
但是使用
[0]
将jQuery对象剥离为DOM元素.on
是一个jQuery方法,未在DOM对象上定义
无论如何都不需要使用
[0]
,因为您是按ID选择的。除非您复制的是元素ID,这是非法的HTML,否则可以安全地假设jQuery选择器只返回一个对象。在$(“#释放链接”)[0]
和$(“#prev链接”)[0]中的[0]
$(“prev链接”)[0]
没有意义。对jquery结果集使用数组访问[0]
将返回本机domeElement
,而本机domeElement
没有jquery函数。在@j08691上,您的注释是正确的,但没有解释就没有用处,因为它没有意义的原因并不明显,特别是对初学者来说。酷。因此,当我在没有[0]的情况下获取它时,jQuery将返回数组一侧的元素,它看起来是这样的:`[] ` 如何抓取它,使其不在数组中?@GolezTrol-这是一条注释,不是答案。这很有意义,但我有一个简单的点击事件,一个控制台日志。我已经获取了[0]关闭,当元素被单击时,我没有得到控制台日志-你看到原因了吗?@HolyMoly删除了数组符号后,它确实工作得很好,不确定为什么它在本地不工作-有完全相同的东西。我会将答案标记为正确,并找出原因…谢谢大家!