Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 附加元素的更快方法,无需在每个循环中搜索最后一个元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 附加元素的更快方法,无需在每个循环中搜索最后一个元素

Javascript 附加元素的更快方法,无需在每个循环中搜索最后一个元素,javascript,jquery,html,Javascript,Jquery,Html,我有一个字符串数组,每个字符串都包含从post调用返回的引导面板。我希望遍历每个循环,并将它们附加到容器元素“eventContainer”的末尾,但我正在寻找一种方法,不必在每个循环中进行搜索。有没有比我现在做的更好/更快的方法 仅供参考-容器底部的另一个元素不是面板 这就是我正在做的 for(var i=0;i

我有一个字符串数组,每个字符串都包含从post调用返回的引导面板。我希望遍历每个循环,并将它们附加到容器元素“eventContainer”的末尾,但我正在寻找一种方法,不必在每个循环中进行搜索。有没有比我现在做的更好/更快的方法

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

这就是我正在做的

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。