【发布时间】:2015-01-23 19:26:28
【问题描述】:
我正在遍历一个 XML 文档并尝试获取每个文档的名称属性,但是 Chrome 一直告诉我 $(this).getAttribute("name"); 不是一个函数。有人知道发生了什么吗?
我看到了一个类似的帖子,但它是用于在按钮的onclick 属性中传递$(this),而不是用于迭代。希望我能对此事有所启发。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<user>
<hotel_group name="Pueblo Bonita" id="1">
<hotel>
<name>Pueblo Bonita 1</name>
<location>
<address>123 Deer St.</address>
<city>Montego Bay</city>
<state>St. Ann's Parish</state>
<country>Jamaica</country>
</location>
<hotel_code>556</hotel_code>
</hotel>
<hotel>
<name>Pueblo Bonita 2</name>
<location>
<address>123 Caribou Dr.</address>
<city>Negril</city>
<state>Spanish Town</state>
<country>Jamaica</country>
</location>
<hotel_code>555</hotel_code>
</hotel>
<hotel>
<name>Pueblo Bonita 3</name>
<location>
<address>30 Milsborough Dr</address>
<city>Kingston</city>
<state>Kingston</state>
<country>Jamaica</country>
</location>
<hotel_code>552</hotel_code>
</hotel>
</hotel_group>
</user>
JS:
$(xml).find("hotel_group").each(function (k, v) {
if (!hotelGroups) {
hotelGroups = [];
}
hotelGroups[k] = $(this).getAttribute("name");
});
【问题讨论】:
-
getAttribute是原生方法,你可能需要.attr()。 -
hotelGroups[k] = this.getAttribute("name");可以。
标签: javascript jquery xml loops dom