2012-06-11 85 views
0

我正在通過每個div使用類名稱並將html引入鍵/值對象。我的問題是,要比我現在所做的更進一步,一個大對象不會削減它。我需要將每個5放到一個不同的對象中,或者做一些類似於.slice()的事情,然後再分解它。我迷路了,因爲,如果我知道有多少前沿,這很容易做到,但我希望儘可能使其具有動態性。用戶可能有27個.example div與我下面的3個。它現在在一個對象中,而不是一個數組,因爲鍵/值對象在dojo圖表和我試圖做的一些其他事情中更好。作爲一個在簡化例如:每5個元素創建一個新對象

//HTML 
    <div class="example"> 
     <div class="title"></div> 
     <div class="definition"></div> 
    </div> 
    <div class="example"> 
     <div class="title"></div> 
     <div class="definition"></div> 
    </div> 
    <div class="example"> 
     <div class="title"></div> 
     <div class="definition"></div> 
    </div> 

    //JS 
    var titles = {}; 
    $('.example').each(function(index) {  
     var exampleTitle = $(this).find('.title').html(); 
     var exampleDef = $(this).find('.definition').html(); 
     titles[exampleTitle] = exampleDef; 
    }); 

在我的腦海裏,而不是標題= {},我想每5推入一個單獨的對象。

//... 
    titles2= {}; 
    titles3={}; 
    etc 

沒有事先對代碼中的數量進行硬編碼。 (即我不想說如果(索引> 5)並在代碼中指定titles2,用戶可能有更多的比這更多,並且硬編碼5的倍數,直到我能想到的任意數量的支持看起來效率不高。)

或者使用類似於.slice()的5的倍數的方式。

titles.slice(0,5); //obviously does not work on objects, just as an example 

有什麼想法?現在

回答

2
$('.example').each(function(index) {  
    var exampleTitle = $(this).find('.title').html(); 
    var exampleDef = $(this).find('.definition').html(); 
    var titles; 
    if (! window['titles' + (index/5)]) { 
     titles = window['titles' + (index/5)] = {}; 
    } 
    titles[exampleTitle] = exampleDef; 
}); 

,你會得到這樣的titles0,titles1,...在window範圍的對象。

相關問題