3

Как исправить обычный код JavaScript, чтобы он не сказал «undefined» и отображает значение поля ввода? Код jQuery отлично работает и корректно отображает значение поля ввода на той же странице.Элемент/объект XPath не определен при использовании document.evaluate

Regular JavaScript:

var obj = document.evaluate('//html/body/form/div[4]/label/input',document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null); 

alert(obj.value); 

JQuery 1.7.1 код:

var obj = $('html > body > form > div:nth-child(4) > label > input'); 

alert(obj.value); 

ответ

5

document.evaluate() возвращает XPathResult. Вы можете извлечь элемент следующим образом:

var obj = document.evaluate('//html/body/form/div[4]/label/input', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; 

if(obj != null) { 
    alert(obj.value); 
} 
​ 
+1

У вас есть хорошие ссылки (ссылки) с хорошими примерами для разных типов результатов. Я все еще пытаюсь склонить голову вокруг того, как они работают. – MacGyver

+1

Это должно хорошо начать: [Введение в использование XPath в JavaScript] (https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript) – Alp

+0

Это тот, который я читал. Ха-ха! Я думал, что документация плохо написана. У них не было полного набора хороших примеров. – MacGyver