Элемент/объект XPath не определен при использовании document.evaluate

Как я могу исправить обычный код JavaScript, чтобы он не говорил «неопределенный» и отображал значение поля ввода? Код jQuery отлично работает и правильно отображает значение поля ввода на той же странице.

Обычный 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);

person MacGyver    schedule 10.04.2012    source источник


Ответы (1)


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);
}
​
person Alp    schedule 10.04.2012
comment
есть ли у вас хорошие ссылки (ссылки) с хорошими примерами для различных типов результатов. Я все еще пытаюсь понять, как они работают. - person MacGyver; 10.04.2012
comment
Это должно дать вам хорошее начало: Введение в использование XPath в JavaScript - person Alp; 10.04.2012
comment
Это тот, который я читал. Ха-ха! Я думал, что документация была плохо написана. У них не было полного набора хороших примеров. - person MacGyver; 10.04.2012