Javascript 是否使用与文档不同的上下文调用调用.querySelector()方法?
在JS中,您可以在任何DOM元素中调用Javascript 是否使用与文档不同的上下文调用调用.querySelector()方法?,javascript,dom,Javascript,Dom,在JS中,您可以在任何DOM元素中调用querySelector,因为它的元素原型中有该方法,并且它仅在该上下文中有效,如下所示: const node = document.getElementById('test-node') node.querySelector('.example') 它可以很好地工作,但我想做的是在使用.call()将方法与变量一起传递后调用该方法,下面是我想做的: const querySelector = document.querySelector queryS
querySelector
,因为它的元素原型中有该方法,并且它仅在该上下文中有效,如下所示:
const node = document.getElementById('test-node')
node.querySelector('.example')
它可以很好地工作,但我想做的是在使用.call()
将方法与变量一起传递后调用该方法,下面是我想做的:
const querySelector = document.querySelector
querySelector.call(node, '.example')
不幸的是,这将抛出一个
类型错误:非法调用
异常,我如何使它工作?显然,至少在Chrome中,文档
与元素有一个不同的查询选择器
相反,您可以直接调用元素
的查询选择器
:
Element.prototype.querySelector.call(node, 'p')
为什么不直接调用
node.querySelector()
??如果node
的值是对DOM元素的引用,那么这就行了。如果它不是对DOM元素的引用,那么用该值调用.querySelector()
,作为this
无论如何都没有意义。