无法使用Shadow Root执行Contains

时间:2015-11-24 20:24:07

标签: javascript

我正在尝试使用我的影子根并查看它是否包含应该读为false的H1。但出于某种原因,我收到了这个错误:

  

未捕获的TypeError:无法在节点上执行包含:参数1不是Node类型。

我哪里错了?

http://plnkr.co/edit/4kgfy05cXuZ9Jefjx01w?p=preview

var root = document.querySelector('div').createShadowRoot();
root.innerHTML = '<content select="h1"></content>';
      
//console.log(document.querySelector('h1'));
//console.log(document.querySelector('content h1'));
console.log(root.querySelector('content').contains('h1'));
<h1>Header defined in the light DOM</h1>

1 个答案:

答案 0 :(得分:1)

'h1'是一个字符串,而不是一个Node。你需要传入一个对象!创建h1document.createElement("h1");并以这种方式传递。

contains()

样品:

使用var derp = document.createElement("h1");或:

缓存变量
console.log(root.querySelector('content').contains(document.createElement('h1'))); //contains(element);