使用不同于文档的上下文调用调用.querySelector()方法?

时间:2017-08-02 20:20:49

标签: javascript dom

在JS中,你可以在任何DOM元素中调用querySelector,因为它在Element原型中有方法,它只会在那个上下文中生效,如下所示:

const node = document.getElementById('test-node')
node.querySelector('.example')

并且它可以正常工作,但我想要做的是在使用.call()使用变量传递方法之后调用该方法,这是我想要做的:

const querySelector = document.querySelector
querySelector.call(node, '.example')

不幸的是,这将引发TypeError: Illegal invocation异常,我该如何才能使其正常工作?

1 个答案:

答案 0 :(得分:3)

显然,至少在Chrome中,document与元素的querySelector不同。

相反,您可以直接致电Element的{​​{1}}:

querySelector