如果我有这样的HTML:
<ul>
<li id="id1">Some Text</li>
<li id="id2">Other Text</li>
<-- more items could be here -->
</ul>
如何创建一个包含JSON对象的数组,该数组具有列表中每个列表项的属性,如:
var itemsData = [
{
"id" : id,
"name" : name
},
{
"id" : id,
"name" : name
}
]
id
和name
等于$(this).attr('id')
和$(this).text()
,其中$(this)
指的是单个li
项。
答案 0 :(得分:5)
itemsData = [];
$('ul > li').each(function(){
itemsData.push({"id" : this.id, "name" : $(this).text()})
});
DEMO(请参阅控制台上的输出)
答案 1 :(得分:4)
使用.each
:
var itemsData = [];
$('li').each(function() {
var $this = $(this);
itemsData.push({
id: $this.attr('id'),
name: $this.text()
});
});
console.log(itemsData);
答案 2 :(得分:1)
var arr = new Array();
$("ul li").each(function(index){
arr[index]['id'] = $(this).attr('id');
arr[index]['name'] = $(this).attr('name');
});