2015-11-24 3 views
2

Я пытаюсь использовать теневой корень и посмотреть, содержит ли он H1, который должен читать false. Но почему-то вместо этого я получаю эту ошибку:Не удалось выполнить Содержит использование Shadow Root

Uncaught TypeError: Failed to execute contains on Node: parameter 1 is not of type 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

'h1' является строка, а не узел. Вам нужно передать объект! Создайте h1, document.createElement("h1"); и передайте его таким образом.

contains()

Пример:

Либо кэшировать переменную с var derp = document.createElement("h1"); или:

console.log(root.querySelector('content').contains(document.createElement('h1'))); //contains(element); 
Смежные вопросы