在chrome控制台中,我能够注入如下所示的js
$("#pageForm").window('open');
然后,将弹出DIV表单,但是,如果我将其更改为以下
document.querySelector("div#pageForm").window('open');
它将返回错误:未捕获的TypeError:document.querySelector(...)。window不是函数 在:1:41
在查找元素时我做错了吗? 谢谢
答案 0 :(得分:1)
您正在调用的window
方法-无论是什么-是您所使用的插件提供给jQuery的方法。 jQuery似乎没有开箱即用的window
方法。由于您使用的是jQuery插件,因此需要使用jQuery而不是查询选择器来定位元素。
答案 1 :(得分:1)
您使用的$
(美元符号)是jQuery。 (它可能并不是每天都有的jQuery,可能是由chrome组成的,而不是没有jQuery的页面)
$('<some_selector>')
和document.querySelector('<some_selector>')
的结果之间存在差异;第一个返回一个javascript对象,该对象是HTML中找到的DOM节点的包装。此包装器对象具有一些方法(包括height()
,width()
,show()
,window()
等),这些方法可以由jQuery或其插件(如由Dwight建议)。但是第二种方式(document.querySelector
)返回DOMNode。这是一个普通的DOM节点,没有!它没有window()
方法
答案 2 :(得分:1)
是的,我同意以上答案。看来您正确选择了元素。但是,window属性并不属于js。它必须是一个jquery插件,以便您可以与jquery一起使用。 jQuery可以使用的另一个功能。
答案 3 :(得分:0)
您可以简单地用$
包装queryselctor$(document.querySelector("div#pageForm")).window('open');