我试图从xml显示值到表单。这是唯一的HTML页面。
例如 config.xml中有<xml><name>abc</name>....</xml>
和HTML表单有<form><input id="name"></form>
做到这样的,我是试过用ajax()取config.xml文件的内容或得到()函数 然后解析xml然后在html表单上显示这些值。
$(function() {
var content;
$.ajax('config.xml', {
dataType: 'text',
success: function (data) {
content = data;
alert(data);
}
});
});
var $inputs = $('#report_form :input');
$inputs.each(function (index) {
var inputid = $(this).attr('id');
alert(inputid);
alert(content);
var xml = content,
xmlDoc = $.parseXML(xml),
$xml = $(xmlDoc),
$title = $xml.find(inputid);
alert($title.text());
text = $title.text();
$('#' + inputid).val(text);
});
我已经在$阿贾克斯()的地方有
$.get("config.xml", function(data) {
xml = data;
alert(xml);//Do stuff with data here
});
尝试; 现在我怀疑在执行这个$ .get()/ $。ajax()时,是否只在xml解析器之后执行。
我如何在xml解析之前执行这个$ .get()/ $。ajax()。
它被XML解析之前执行。你的XML解析发生得太早。 ajax是异步的。 –
调用函数从成功函数中解析xml。或者,看看承诺(http://api.jquery.com/promise/) –
这就是你的代码执行的方式:1:define content var。 2:发送ajax请求。 3:迭代输入并解析xml内容。 4:收到xml内容。正如你所看到的,3发生在4之前,这是因为ajax是异步的。将3移到ajax回调的内部,它会在正确的时间发生。 –