问题:它只为每个元素添加“undefined”。
我已经阅读了两个小时的大部分时间来尝试解决这个问题,但已经耗尽了资源。很抱歉,如果问了很多这个问题。
我正在尝试获取XML响应并将其转化为有意义的内容。到目前为止,我已经使用了data.gov数据集来测试它。
我的代码:
<!DOCTYPE html>
<html>
<head>
<title>jQuery and XML</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body
<div id="output"></div>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
dataType: "xml",
url: "https://health.data.ny.gov/api/views/wssx-idhx/rows.xml",
success: function(xml){
$(xml).find("row").each(function(){
$("#output").append($(this).attr("facility_name") + "<br />");
});
}
});
});
</script>
</body>
</html>
例如,我正在测试的网址将此作为回复:
<response>
<row>
<row _id="48" _uuid="760E4665-B5D8-489A-ACC3-9D649D4F1989" _position="48" _address="http://health.data.ny.gov/resource/wssx-idhx/48">
<facility_name>Orchard Grove Residences</facility_name>
<address>2000 Southwestern Drive W. E.</address>
<county>Chautauqua</county>
<city>Jamestown</city>
<zip>14701</zip>
<.....>
</row>
<response>
这只是XML响应中的众多元素之一。我觉得这里有一些简单的东西让我失踪,或者我的思维过程出现了根本性的错误。
答案 0 :(得分:0)
facility_name
不是row
的属性,它是子节点。 $(this).attr("facility_name")
将检索看起来像<row facility_name=""...>
的内容,这不是您想要的内容。
您需要使用$(this).find("facility_name")
来获取子节点。因为只有一个你可以获得数组中的第一个项而不是另一个.each
。
答案 1 :(得分:0)
您希望在XML中附加每个facility_name
的{{1}}子项的文本。
因此,您无法使用row
。而是写
attr