我正在使用Jquery ajax,我得到了类似
的XML<tabs>
<tab>
<id>1</id>
<name>firstname</name>
<lastname>surname1</lastname>
</tab>
<tab>
<id>2</id>
<name>secondname</name>
<lastname>surname2</lastname>
</tab>
</tabs>
在jquery中我想将它存储在下面的对象中
var obj = {
'1' : {
'name' : 'firstname',
'lastname' : 'surname1'
},
'2' : {
'name' : 'secondname',
'lastname' : 'surname2'
}
};
以便根据键i可以直接访问其值。
obj.2.name should return me second name
任何jQuery专家都可以帮助我。
下面是我的Jquery代码,我正在尝试更新,但没有得到任何线索如何使其工作。
提前谢谢。
$.ajax({
url: __BASEURL + "portal/getusertabs.php",
data: {user_id: user_id},
type: "POST",
dataType: 'XML',
cache: false,
async: false,
success: function(data, textStatus, jqXHR) {
$(data).find('tabs').each(function() {
$(this).find('tab').each(function() {
var tab_id = $(this).find('id').text();
var tab_name = $(this).find('name').text();
var tab_lastname = $(this).find('last name').text();
tab.push({id : tab_id, name : tab_name, lastname : tab_lastname});
});
});
}
});
答案 0 :(得分:1)
请注意,您不需要遍历tabs
,因为这是根元素,并且只应该有1个。您还需要将选项卡的id
设置为对象的键。试试这个:
$(data).find('tab').each(function () {
var tab_id = $(this).find('id').text();
var tab_name = $(this).find('name').text();
var tab_lastname = $(this).find('lastname').text();
tab[tab_id] = {
name: tab_name,
lastname: tab_lastname
};
});
console.log(tab);
请注意,使用tab.2.name
无效javascript,因为数值不能用作标识符。相反,你需要使用它:
tab['2'].name // = 'secondname'