Javascript 尝试设置时意外触发。单击()处理程序

Javascript 尝试设置时意外触发。单击()处理程序,javascript,jquery,Javascript,Jquery,我正在尝试将事件附加到链接的单击处理程序。我可以通过元素的href来选择元素,但是当我在Javascript控制台中输入以下代码时,会触发事件,而不是添加事件处理程序: $('a[href=“example.com”])[0]。单击(console.log(“Message”)) 我已经通读了,其中说明调用。使用参数单击不应触发事件,并且不确定发生这种情况的原因。您正在尝试调用。不存在的HTMLELement的click() 在jQuery对象上执行[some number]操作时,将返回相应的

我正在尝试将事件附加到链接的单击处理程序。我可以通过元素的
href
来选择元素,但是当我在Javascript控制台中输入以下代码时,会触发事件,而不是添加事件处理程序:

$('a[href=“example.com”])[0]。单击(console.log(“Message”))


我已经通读了,其中说明调用
。使用参数单击
不应触发事件,并且不确定发生这种情况的原因。

您正在尝试调用
。不存在的
HTMLELement
的click()

jQuery
对象上执行
[some number]
操作时,将返回相应的
HTMLElement
。但是
.click()
jQuery
的函数,而不是
HTMLElement
的函数。您还应该将代码包装在匿名函数中

这样做:

$('a[href="example.com"]').click(function(){
    console.log("Message")
});
使用HtmleElement,您可以执行以下操作:

$('a[href="example.com"]')[0].onclick =  function(){
  console.log("Message")
}

但我不推荐上述方法。只是说上述情况也存在

您正试图调用
。单击
HTMLELement
的()
,该函数不存在

jQuery
对象上执行
[some number]
操作时,将返回相应的
HTMLElement
。但是
.click()
jQuery
的函数,而不是
HTMLElement
的函数。您还应该将代码包装在匿名函数中

这样做:

$('a[href="example.com"]').click(function(){
    console.log("Message")
});
使用HtmleElement,您可以执行以下操作:

$('a[href="example.com"]')[0].onclick =  function(){
  console.log("Message")
}

但我不推荐上述方法。只是说上述情况也存在

如果忘记编写函数,则需要在函数中封装代码。试试这个

$('a[href="example.com"]').click(function(){console.log("Message")})

单击是jQuery的一个事件,所以当您选择element by$时,它返回jQuery对象,您可以对该对象调用进一步的jQuery事件。但是,当您编写
[0]
时,它返回DOM元素,并且没有click事件处理程序。

如果忘记编写函数,则需要在函数中包装代码。试试这个

$('a[href="example.com"]').click(function(){console.log("Message")})

单击是jQuery的一个事件,所以当您选择element by$时,它返回jQuery对象,您可以对该对象调用进一步的jQuery事件。但是当您编写
[0]
时,它会返回DOM元素,并且没有click事件处理程序。

Ah ok。我想我误解了JQuery选择器,我认为它的工作原理与getElementsByName相同,它返回一个必须从中选择的数组。为什么不推荐底部选项?是因为它可能会覆盖而不是附加事件处理程序吗?@wils484你说得对。但另一个原因是,当您加载jQuery时,您加载它是为了使您的工作更容易、更高效。那么为什么不在加载jQuery时使用它呢:)啊,好的。我想我误解了JQuery选择器,我认为它的工作原理与getElementsByName相同,它返回一个必须从中选择的数组。为什么不推荐底部选项?是因为它可能会覆盖而不是附加事件处理程序吗?@wils484你说得对。但另一个原因是,当您加载jQuery时,您加载它是为了使您的工作更容易、更高效。那么为什么不在加载jQuery时使用它呢:)