我想将XML节点值(从AJAX脚本发送的XML)映射到相应的HTML表单元素中。例如,XML数据;
<object>
<fielda>John</fielda>
<fieldc>Tailor</fieldc>
</object>
应该通过脚本插入HTML表单:
<form name="myform">
<input name="fielda" value="">
<input name="fieldc" value="">
</form>
问题是脚本应该对所有对象一般工作(事先无法知道XML中将给出哪些字段,例如,如果“fieldx”是以XML格式发送的,则此脚本应该满足document.myform.fieldx表单元素来自XML的价值)。因此,此脚本应循环遍历所有XML节点,并尝试将值设置为HTML格式。
答案 0 :(得分:0)
<强> jsfiddle 强>
<form name="myform">
<input name="fielda" value=""/>
<input name="fieldc" value=""/>
</form>
<div id="status">Loading...</div>
#status {
font-style:italic;
font-size:0.8em;
}
$.ajax({
'url':'/echo/xml/',
'method':'POST',
'data':{
xml:'<object>\n<fielda>John</fielda>\n<fieldc>Tailor</fieldc>\n</object>',
'delay':1
},
'complete':function(xhr,status) {
console.log(xhr);
var form = document.myform;
var root = xhr.responseXML.children[0];
for (var i = 0; i < root.children.length; ++i) {
var field = root.children[i];
form[field.nodeName].value = field.textContent;
} // end for
document.getElementById('status').textContent = '';
}
});