Javascript 附加元素的更快方法,无需在每个循环中搜索最后一个元素
我有一个字符串数组,每个字符串都包含从post调用返回的引导面板。我希望遍历每个循环,并将它们附加到容器元素“eventContainer”的末尾,但我正在寻找一种方法,不必在每个循环中进行搜索。有没有比我现在做的更好/更快的方法 仅供参考-容器底部的另一个元素不是面板 这就是我正在做的Javascript 附加元素的更快方法,无需在每个循环中搜索最后一个元素,javascript,jquery,html,Javascript,Jquery,Html,我有一个字符串数组,每个字符串都包含从post调用返回的引导面板。我希望遍历每个循环,并将它们附加到容器元素“eventContainer”的末尾,但我正在寻找一种方法,不必在每个循环中进行搜索。有没有比我现在做的更好/更快的方法 仅供参考-容器底部的另一个元素不是面板 这就是我正在做的 for(var i=0;i
for(var i=0;i }
如果您只需将最后一个面板存储在变量中,并在附加元素时使用该面板,那么您拥有的代码将起作用。您必须颠倒顺序:
var $lastPanel = $("#eventContainer").find(".panel").last();
for (var i = response.events.length - 1; i >= 0; i--) {
$lastPanel.append(response.events[i]);
}
以下是我创建的代码片段,用于向最后一个同级添加元素: 你需要退房 insertAfter()用于在每个同级旁边添加新元素, 而append()通常用于将新元素(子元素)附加到父选择器 如果要将事件的数组/对象添加到最后一个同级,则以下是代码段: (用于事件数组) (用于事件对象)
var-box=$(“#eventContainer”).find(“.panel”).last();box.append.apply(box,response.events)
应该这样做。apply做什么?将数组(response.events
)作为参数应用于函数。使用上下文框
追加
。即使容器的末尾有不同的元素,这也会起作用。我将重新发布更新后的代码片段。这很好,因为框
只是最后一个。面板
-就像在原始代码中一样。那么哪一个最快?我已经更新了答案。现在就速度而言,我已经在这里创建了测试用例:所以在前两次执行中,两个解决方案都以2ms的速度执行。但在第三次执行中,你的解是3ms,而我的解是1ms。