我正在尝试使用我的影子根并查看它是否包含应该读为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>
答案 0 :(得分:1)
'h1'
是一个字符串,而不是一个Node。你需要传入一个对象!创建h1
,document.createElement("h1");
并以这种方式传递。
样品:
使用var derp = document.createElement("h1");
或:
console.log(root.querySelector('content').contains(document.createElement('h1'))); //contains(element);