未捕获的TypeError:无法读取未定义的属性“on”

时间:2015-10-21 16:39:43

标签: javascript jquery

在控制台中,我可以看到releaseLink具有正在抓取的正确值(链接)。但是当我尝试为它创建一个click事件时,在下一行,我在控制台中收到此错误:

Uncaught TypeError: Cannot read property 'on' of undefined

这是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>

1 个答案:

答案 0 :(得分:5)

但是使用Labels.$1_$2已经将jQuery对象剥离为DOM元素。 [0]是一个jQuery方法,并未在DOM对象上定义。

无论如何都不需要使用.on,因为您需要按ID进行选择。除非你复制了非法HTML的元素ID,否则假设你的jQuery选择器只返回一个对象是安全的。