0

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

whereidnameequal to$(this).attr('id')$(this).text()where$(this)指的是单个li项目。

4

3 回答 3

5
itemsData = [];
$('ul > li').each(function(){
   itemsData.push({"id" : this.id, "name" : $(this).text()})
});

DEMO(见控制台输出)

于 2012-06-12T10:51:00.913 回答
4

通过使用.each

var itemsData = [];

$('li').each(function() {
    var $this = $(this);
    itemsData.push({
      id: $this.attr('id'),
      name: $this.text()
    });
});

console.log(itemsData);
于 2012-06-12T10:51:25.747 回答
1
var arr = new Array();
$("ul li").each(function(index){
   arr[index]['id'] = $(this).attr('id');
   arr[index]['name'] = $(this).attr('name');
});
于 2012-06-12T10:52:34.033 回答