0

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

'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 未定义?

4

1 回答 1

1

您不应该分别迭代.containers、dts 和dds - 您忘记了 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();
        };
    });
});
于 2013-02-01T15:31:30.517 回答