Jquery每个索引都保持为0

时间:2013-06-22 19:21:48

标签: jquery

我在我的脚本中有一个部分,它循环遍历列表中的元素数量,并抓取信息然后将其放入不同的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命名为最后一个数字......我选择了我的大脑并且不知道会出现什么问题。

1 个答案:

答案 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);
    });
});