我正在尝试将xml文件的内容分配给var,如下所示:
var testing = $.load('xx.xml');
$('#display').text(testing);
但它不起作用。我按照以下建议尝试了“.load”功能:
How to assign file contents into a Javascript var
我查看了他们在jquery网站上建议的页面,但我找不到特定的东西来将.xml文件的内容作为字符串分配给var。
我很欣赏这可能非常明显&我可以说是懒惰,但我一直在尝试随意的事情。无法弄清楚这一点。
由于
EDIT!我正在加载加载函数中的内容,我不是这个意思,它现在已经编辑了。
答案 0 :(得分:3)
首先,$.load
不是最新jQuery源中定义的函数,也不是jQuery站点上的文档。
其次,假设您尚未修改jQuery的全局AJAX设置,jQuery.fn.load
和其他请求函数将是异步的,因此您不能将结果分配给变量,因为函数在请求完成之前返回。您需要使用回调处理程序。
尝试使用带有回调函数的$.ajax
:
var testing;
$.ajax('xx.xml', {
dataType: 'text',
success: function (data) {
testing = data;
$('#display').text(testing);
}
});
由于您希望数据作为文本并且文件看起来是XML,我们使用dataType
告诉jQuery将数据作为字符串返回。
答案 1 :(得分:1)
没有$.load
功能。你可能想要的是jQuery.get
:
var xml;
$.get("xx.xml", function(data) {
xml = data;
});
当文件以异步方式检索时,您需要将结果分配给回调内的变量,该变量在请求成功返回时执行。但请注意,如果您在xml
调用后尝试运行依赖于.get
的代码,则xml
将被取消定义,因为回调还没有运行。例如:
var xml;
$.get("xx.xml", function(data) {
xml = data;
//Do stuff with data here
});
console.log(xml); //Most likely undefined because asynchronous call has not completed
如果您尝试将结果插入DOM元素,则可以使用.load
方法:
$("#someElem").load("xx.xml");
答案 2 :(得分:0)
如果您尝试使用ajax从服务器获取xml,可以尝试这样的事情 -
function getXml()
{
var contents;
$.ajax({ url :'/website/method', type: 'GET', dataType :'xml', async : false,
cache : true, success : function(myXml){
contents = myXml;
}
});
return contents;
}