我正在开发一个函数来进行一些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
答案 0 :(得分:1)
您可能会收到此错误,因为您没有创建jQuery插件,而是向jQuery对象添加了一个函数。
您需要将函数分配给$.fn
,它将像任何其他jQuery对象方法一样可用。
$.fn.xpath = function(exp, ctxt) {