2014-12-24 2 views
0

Firebug печатает XPATH результат, как не определено, но не неопределеннымиdocument.evaluate с XPathResult.FIRST_ORDERED_NODE_TYPE возвращает неопределенное значение

function xpathTest() 
{ 
var div1 = document.getElementById("div1"); 
var result = document.evaluate("//div[text()='Hello']", div1, null, 
       XPathResult.FIRST_ORDERED_NODE_TYPE, null); 
console.log(result); // Firebug prints undefined 
console.log(result === undefined); // prints false 
console.log(typeof result); // prints object 
console.log(result.singleNodeValue); // prints Hello 
} 

Html здесь:

<body onload="xpathTest()"> 
<div id="div1"> 
    <div>Hello</div> 
</div> 
</body> 

Так фактическая ToString() реализация (?) Результат xpath неверен или это ошибка Firebug?

+0

Использование Chrome, и встроенный в веб-консоли 'result' Фирефокса получает отображается как' XPathResult', показывает только 'undefined' в поджигатель так это, вероятно, вопрос поджигатель. Однако использование console.dir заставляет firebug распечатывать объект XPathResult –

+0

@PatrickEvans Получил его. Спасибо. –

ответ

0

Кажется, это проблема с Firebug.

var resultDiv = document.getElementById("resultDiv"); 
add("Result: " + result); // Result: [object XPathResult] 
add("(result === undefined): " + (result === undefined)); 
// (result === undefined): false 

add("(typeof result): " + (typeof result)); 
// (typeof result): object 

add("result.singleNodeValue: " + result.singleNodeValue); 
// result.singleNodeValue: [object HTMLDivElement] 

function add(content) 
{ 
    resultDiv.innerHTML += content + "<br>"; 
} 

JS Fiddle См