创建一个包含多个HTML元素属性的嵌套数组

时间:2012-06-12 10:47:50

标签: javascript json

如果我有这样的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
     }
]

idname等于$(this).attr('id')$(this).text(),其中$(this)指的是单个li项。

3 个答案:

答案 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');
});