gpt4 book ai didi

javascript - `element.next().insertBefore(element)` 是做什么的?

转载 作者:行者123 更新时间:2023-11-30 16:29:18 25 4
gpt4 key购买 nike

我一定是遗漏了一些非常简单的东西,但我还不确定它是什么。

来自 this answer我们有代码:

app.directive('createTable', function ($compile) {
return {
link: function(scope, element, attrs) {
if (element.next().length) {
element.next().insertBefore(element);
}

var contentTr = angular.element('<tr><td>test</td></tr>');
contentTr.insertAfter(element);
$compile(contentTr)(scope);
}
}
});

目标是在 ng-repeat 指令中的每个元素之后插入一些内容。

这部分是做什么的?

            if (element.next().length) {
element.next().insertBefore(element);
}

我这样读:“如果在 element 之后有一个元素 X,那么在 X< 之前粘贴 element/”。然而,情况似乎已经如此。

它显然做了一些事情,因为如果我删除那三行,所有元素都会添加到 tbody 的末尾,而不是散布在中间。参见 jsfiddle of the working version , 和 the jsfiddle when it's commented out .

最佳答案

.next() :

Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.

insertBefore() :

Insert every element in the set of matched elements before the target.

因此,$element.next().insertBefore($element)$element 与其后续兄弟交换。

关于javascript - `element.next().insertBefore(element)` 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33574132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com