使用document.evaluate时,未定义XPath元素/对象

时间:2012-04-10 19:08:33

标签: javascript jquery xpath jquery-selectors document.evaluate

如何修复常规JavaScript代码,使其不会显示“undefined”并显示输入字段的值? 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);

1 个答案:

答案 0 :(得分: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);
}
​