我将使用类名浏览每个div并将html抛出到键/值对象中。我的问题是,要比现在更进一步,一个大的目标不会削减它。我需要将每个5放入一个不同的对象,或者执行与.slice()类似的操作,然后将其分解。我迷失了,因为如果我知道前面有多少,这很容易做到,我想让它尽可能地动态。用户可能有27个.example div与我下面的3个。它现在在一个对象中,而不是一个数组,因为键/值对象可以更好地使用dojo图表,以及我正在尝试做的其他一些事情。作为一个简单的例子:
//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推入一个单独的对象,而不是titles = {}。
//...
titles2= {};
titles3={};
etc
预先不对代码中的金额进行硬编码。
(即我不想说if(index&gt; 5)并在代码中指定titles2,用户可能有更多,并且硬编码5的倍数到我能想到的任意数字支持看起来效率不高。)
或者使用类似于.slice()的5的倍数的方法。
titles.slice(0,5); //obviously does not work on objects, just as an example
有什么想法吗?
答案 0 :(得分: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;
});
现在,您将在window
范围内获得titles0,titles1,...等对象。