我的 url 返回以下 xml:
<?xml version="1.0"?>
<categories>
<category>
<catid>17</catid>
<name>Collage</name>
<parent></parent>
</category>
<category>
<catid>15</catid>
<name>Letter Mats</name>
<parent></parent>
</category>
<category>
<catid>182</catid>
<name>Single Opening</name>
<parent></parent>
</category>
</categories>
我的 javascript 代码是:
var matte_select_options = new Array();
function matte_designs_populate_types()
{
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "myurl/system/components/catsxml/3",
dataType: 'xml',
success: function(xml) {
designs = xml.getElementsByTagName("categories")[0].childNodes;
var output = [];
alert(designs.length);
for (i = 0; i < designs.length; i++)
{
var catid = designs[i].getAttribute("catid");
var name = designs[i].getAttribute("name");
output.push('<option value="'+ catid +'">'+ name +'</option>');
matte_select_options[catid] = name;
}
$('#matte_designs').html(output.join(''));
}
});
});
}
出于某种原因,警报给了我 7,但我不确定为什么。但主要问题是 select 没有填充,因为 catid 和 name 甚至没有设置。
最佳答案
您可以将返回的 XML 转换为 jQuery 对象,然后像平常一样使用 jQuery 的 DOM 遍历函数。试试这个:
success: function(xml) {
var output = [];
$('category', xml).each(function(i, el) {
var catid = $("catid", this).text();
var name = $("name", this).text();
output.push($('<option />', { value: catid, text: name }));
matte_select_options[catid] = name;
});
$('#matte_designs').html(output);
}
关于javascript - 如何解析从 url 返回的 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19861720/