更快地添加元素而无需在每个循环中搜索最后一个元素的方法

时间:2018-08-25 07:24:27

标签: javascript jquery html

我有一个字符串数组,每个字符串包含一个从开机自检返回的引导面板。我想遍历每个循环并将它们附加到容器元素'eventContainer'的末尾,但是我正在寻找一种无需在每个循环中进行搜索即可做到的方法。是否有比我正在做的更好/更快的方式?

仅供参考-容器底部还有一个不是面板的元素

这是我在做什么

for (var i = 0; i < response.events.length; i++) {
  $("#eventContainer").find(".panel").last().append(response.events[i]);
}

和我要附加的eventContainer看起来像这样

<div id="eventsContainer">
<div class="panel panel-default"></div>
<div class="panel panel-default"></div>
<div class="panel panel-default"></div>
...append new panels here
<div id="someotherelement"></div>
</div>

2 个答案:

答案 0 :(得分:0)

如果您仅将最后一个面板存储在变量中并在附加元素时使用它,那么您拥有的代码将起作用。您将不得不撤销顺序:

var $lastPanel = $("#eventContainer").find(".panel").last();
for (var i = response.events.length - 1; i >= 0; i--) {
  $lastPanel.append(response.events[i]);
}

答案 1 :(得分:0)

这是我创建的将元素添加到最后一个同级中的代码片段: https://codebrace.com/editor/b013fb1cc

您需要签出insertAfter()

insertAfter()用于在每个兄弟姐妹旁边添加新元素, 通常,append()通常用于将新的element(child)附加到父选择器。

如果要将事件的数组/对象添加到最后一个同级,则代码段如下:

(用于事件数组) https://codebrace.com/editor/b016bcb47

(对于事件对象) https://codebrace.com/editor/b016cc929