0
我正在開發一個函數來執行一些XML處理。我試圖添加一個插件,它可以讓我從jQuery對象執行XPath查詢。當我嘗試調用插件時,「對象不支持屬性或方法」
function GetVersionCollection_FromLiveHistory(itemid)
{
(function($) {
$.xpath = function(exp, ctxt) {
var item, coll = [],
result = document.evaluate(exp, ctxt || document, null, 5, null);
while (item = result.iterateNext())
coll.push(item);
return $(coll);
}
})(jQuery);
url = "https://someSite.com/sites/xyz/_vti_bin/owssvr.dll?Cmd=Display&XMLDATA=TRUE&List={LISTGUID}&View={VIEWGUID}&IncludeVersions=TRUE&FilterField1=ID&FilterValue1=" + itemid
returnedXml = null;
var output=$.get(url,function(returnedXml){
elVersions=$.parseXML(returnedXml);
var result={};
$(elVersions).xpath("//z:row").each(function(index,element){
versionNumber=$(this).attr('ows__UIVersionString');
result[versionNumber]=$(this);
return result;
});
},"xml");
return output;
}
當我把它時,瀏覽器返回似乎表明xpath
尚未成功添加爲一個jQuery插件,當它到達$(elVersions).xpath("//z:row")...
線的錯誤。
IE:
Object doesn't support property or method 'xpath'
鉻:
Uncaught TypeError: $(...).xpath is not a function
如果您嘗試將函數賦值給'$ .fn.xpath'而不是'$ .xpath',會發生什麼? – dreyescat
@dreyescat,做了什麼,現在我得到了一個不同的錯誤,而不是:'未捕獲NamespaceError:無法執行'評估''文檔':字符串'// z:行'包含無法解析的名稱空間。' – sigil
@sigil不知道我可以幫你解決這個問題......我不擅長XML和名稱空間,也不太喜歡使用XPath;)。但是也許在你的'document.evaluate'中,你需要指定命名空間。 – dreyescat