Javascript 为什么jquery.click()在添加[0]时对href有效?

Javascript 为什么jquery.click()在添加[0]时对href有效?,javascript,jquery,Javascript,Jquery,因此,我遇到了一个问题,我需要一个页面来刷新,但我无法对其使用.click()方法,因为它在href上不起作用。我无法使用window.location,因为由于安全原因,我试图呈现可以直接访问的子选项卡。然后我偶然发现了这篇文章: 他的解决方案是可行的,但我希望有人能很好地解释一下为什么这样做。因为使用$('#element')[0]可以获得DOM元素,因此,您可以对该元素使用javascript函数触发与jQuery绑定的事件处理程序,并模拟事件以尝试触发其他与单击相关的处理程序,但不能准

因此,我遇到了一个问题,我需要一个页面来刷新,但我无法对其使用.click()方法,因为它在href上不起作用。我无法使用window.location,因为由于安全原因,我试图呈现可以直接访问的子选项卡。然后我偶然发现了这篇文章:

他的解决方案是可行的,但我希望有人能很好地解释一下为什么这样做。

因为使用
$('#element')[0]
可以获得DOM元素,因此,您可以对该元素使用javascript函数

触发与jQuery绑定的事件处理程序,并模拟事件以尝试触发其他与单击相关的处理程序,但不能准确再现浏览器的本机行为:

尽管.trigger()模拟了事件激活,但它以 合成的事件对象,它不能完全复制 自然发生的事件


如果添加
[0]
,则不会调用jQuery的函数,但在这种情况下,它可以很好地工作。

jQuery的
$()
函数返回一个带有特殊方法的数组,如:
.css()
.append()
。当这些特殊数组函数中的一个被调用时,jQuery会将该操作应用于数组中的所有元素。数组由DOM节点组成,因此当我们使用
数组[0]
语法访问它时,我们会得到一个具有不同方法集的DOM元素。

这应该是对原始问题的注释,而不是它自己的独立问题。@Blazemonger,你是指他所指的原始答案吗?确实有人问过为什么它可以作为对这个问题的评论。你能粘贴你的代码看看你面对的是相同的问题还是不同的问题吗?所以如果没有[0],它会返回href本身?只需使用$('#element')就可以在jQuery对象中获取元素,从而允许你使用jQuery函数@JSnoob@JSnoob不它将返回锚元素节点,该节点具有href属性。为了给答案添加一点解释,jquery总是返回一个数组,当您添加[0]时,它将返回数组中的第一个dom元素。这是不正确的。这是一个特殊情况-
单击事件。当使用
.event()
.trigger(“event”)
时,jQuery确实尝试触发本机DOM事件,但也有例外,这就是其中之一。他们专门针对这一点,因此不会意外地遵循
href
。虽然StackEdit会自动将“Write with StackEdit”行插入新文档,但我们要求您在将答案发布到此处之前将其从您的答案中删除,因为这是不必要的(Stack Exchange不在乎你用什么来写文章,只要它们的格式正确),因此只会给你的答案增加噪音。它甚至可以被视为促销,这是不受欢迎的,即使你实际上没有自己创建工具。另请参阅