为什么添加[0]时jquery .click()在href上工作?

时间:2013-10-18 14:55:40

标签: javascript jquery

所以我遇到了一个问题,我需要刷新一个页面,但我无法使用.click()方法,因为它不适用于href。我无法使用window.location,因为我试图渲染一个可以直接访问的子选项卡,这是出于安全原因。然后我偶然发现了这篇文章:

https://stackoverflow.com/a/12801548/1864552

他的解决方案有效,但我希望有人可以解释为什么会有效。

3 个答案:

答案 0 :(得分:5)

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

  

虽然.trigger()模拟事件激活,但完成了   合成事件对象,它不能完美复制一个   自然发生的事件。

如果添加[0],则不会调用jQuery的函数,而是the standard DOM function,这在这种情况下完全有效。

答案 1 :(得分:4)

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

答案 2 :(得分:1)

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