我在我的脚本中有一个部分,它循环遍历列表中的元素数量,并抓取信息然后将其放入不同的div中。由于某种原因,第一个循环不会计入其索引。我已经尝试了几种不同的方法来做到这一点,但似乎没有办法。
这是脚本:
//check each Item for a List
if ($(obj).has('> ul')) {
// Second Level Lists
$(obj).find('> ul').each(function (index, obj) {
// Create Second Level Divs
baseElement.append(
'<div class="level" id=' + index +
' style="color:' + settings.startColor + ';background:' +
settings.startBg +';font-size:' + settings.baseFont +
'px;position:absolute;width:100%;height:100%;"></div>'
);
// Second Level List Items
$(obj).find('> li').each(function (i, obj) {
$('.level#2').append(
"<span>" +
$(obj).find('>:first-child').text() +
"</span>"
);
});
});
}
我需要做到这一点,因此它会计算起来并将每个创建的div命名为最后一个数字......我选择了我的大脑并且不知道会出现什么问题。
答案 0 :(得分:3)
你的内部循环只附加到.level#2
,这可能不是你想要的。如果我正确地阅读你的问题,这应该有效:
$(obj).children('ul').each(function(index) {
var $parent = $('<div>', {
'class': 'level',
id: index,
css: {
color: settings.startColor,
background: settings.startBg,
fontSize: settings.baseFont + 'px',
position: 'absolute',
width: '100%',
height: '100%'
}
}).appendTo(baseElement);
$(this).children('li').each(function() {
$('<span>', {
text: $(this).children().first().text()
}).appendTo($parent);
});
});