2012-04-10 29 views
3

如何修復常規JavaScript代碼,使其不顯示「未定義」並顯示輸入字段的值? jQuery代碼工作正常,並在同一頁面上正確顯示輸入字段值。使用document.evaluate時XPath元素/對象未定義

常規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 2012-04-10 19:31:34

+1

這應該給你一個好的開始:[在JavaScript中使用XPath介紹](https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript) – Alp 2012-04-10 19:32:47

+0

這就是我正在閱讀的那篇文章。哈哈!我認爲文檔寫得不好。他們沒有一套完整的例子。 – MacGyver 2012-04-10 19:33:54