在每个函数上创建一个对象数组

时间:2013-02-01 15:27:07

标签: javascript jquery object

最终我希望得到一个像这样显示的对象:

'0': {
       '0': {
              label: 'Book:',
              content: 'a book name',        
       }, 

       '1': {
              label: 'Video:',
              content: 'a video name',        
       }, 

       '2': {
              label: 'Audio:',
              content: 'an audio name',        
       },              
  }, 

'1': {
       '0': {
              label: 'Book:',
              content: 'another book name',        
       }, 

       '1': {
              label: 'Video:',
              content: 'another video name',        
       }, 

       '2': {
              label: 'Audio:',
              content: 'another audio name',        
       },              
  }

我在http://jsfiddle.net/ScbjL/4/中的代码结果不对,我很困惑为什么objDL未定义?

1 个答案:

答案 0 :(得分:1)

您不应单独迭代.containerdtdd - 您忘记了objDT / DD阻止的容器。也可以使用数组而不是对象来获得结果。

var objDL = [];
$("dl").each(function(i) {
    objDL[i] = [];
    $(this).children("dt").each(function(j) {
        var $this = $(this);
        objDL[i][j] = {
            title: $this.text(),
            description: $this.next("dd").text();
        };
    });
});