3

我在 jQuery 中有一个带有数字的简单数组。数字 3、6、9、12、15 表示我要插入 html div 的无序列表中的特定位置。所以在 3、6、9 等之后我想插入一个 div。这是我的 jQuery。在我的代码中,它似乎只在第 15 li 之后插入 div。如何在每个特定位置插入 div 而不仅仅是最后一个?

    var row = [3, 6, 9, 12, 15];

    var emptyDiv= $('<div></div>');

    jQuery.each(row, function(i, val){
        $(emptyDiv).insertAfter('ul#state-list li:nth-child(' + val + ')');
    });
4

2 回答 2

0

尝试这个:

var row = [3, 6, 9, 12, 15];
jQuery.each(row, function(i, val) {
    $('<div>').insertAfter('ul#state-list li:nth-child(' + val + ')');
});
于 2013-07-15T21:48:43.670 回答
0

您可以使用.clone().

.clone() 方法创建匹配元素的副本。

在您的情况下,您不是为每一行创建一个空 div,而是在行中插入(移动)div。所以在第一个循环中,div 在第 3 行,在第二个循环中,div 在第 6 行,依此类推,直到第 15 行。

因此,使用 .clone() 方法可以插入 div 的副本,并且每一行都会有 div 的副本。

var row = [3, 6, 9, 12, 15];

var emptyDiv= $('<div></div>');

jQuery.each(row, function(i, val){
    emptyDiv.clone().insertAfter('ul#state-list li:nth-child(' + val + ')');
});

有关 .clone() 方法的更多信息:http: //api.jquery.com/clone/

于 2013-07-15T22:05:00.443 回答