这是我的xml文件示例,其中<studentenhuizen>
重复多次:
<studentenhuis>
<studentenhuizen>
<adres>Aalbeeksesteenweg</adres>
<huisnr>19</huisnr>
<gemeente>KORTRIJK</gemeente>
<aantal_kamers>14</aantal_kamers>
</studentenhuizen>
</studentenhuis>
我的对象
function StudentenKot(adres, huisnr, gemeente, aantalkamers){
this.adres = adres;
this.gemeente = gemeente;
this.huisnr = huisnr;
this.aantalSlaapkamers = aantalkamers;
};
加载xml文件:
$.ajax({
type: "GET",
dataType: "xml",
url:url,
success: function (xml) {
studentenhuis = new Array();
$(xml).find("studentenhuizen").each(function () {
studentenhuis.push(new StudentenKot(this.adres, this.huisnr, this.gemeente, this.aantal_kamers));
});
$.each(studentenhuis, function (i) {
$(".studentenkoten").append("<div class='gemeente'>" + studentenhuis[i].adres + "</div>");
});
}
});
当添加到<div class="gemeente">
时,它会显示“未定义”。
这之前有用,但它现在说[Object object]
alert($(xml).find("adres"));
答案 0 :(得分:1)
this.adres
- 我和json混淆了不是吗?
是的,你有。警告/字符串化时应该说undefined
。
$(xml).find("adres")
- 它现在说[Object object]
是的,find
返回的是一个jQuery集合对象,它将被字符串化为"[object Object]"
。你想要:
<adres>
节点(也不是带有它的jQuery集合),而是其文本内容<studentenhuizen>
节点,而不是整个xml
。所以使用
$(xml).find("studentenhuizen").each(function () {
studentenhuis.push(new StudentenKot(
$(this).find("adres").text(),
$(this).find("huisnr").text(),
$(this).find("gemeente").text(),
$(this).find("aantal_kamers").text()
));
});