在原生javascript中,jQuery的after和before函数的等价物是什么?

wko9yo5t  于 2023-05-21  发布在  Java
关注(0)|答案(3)|浏览(137)

我以前一直使用jQuery,但我想将以下内容切换到原生javascript以获得更好的网站性能。

var first = $('ul li:first');
var first = $('ul li:last');

$(last).before(first);
$(first).after(last);
qxsslcnc

qxsslcnc1#

From:http://clubmate.fi/append-and-prepend-elements-with-pure-javascript/

之前(prepend):

var el = document.getElementById('thingy'),
    elChild = document.createElement('div');
elChild.innerHTML = 'Content';

// Prepend it
el.insertBefore(elChild, el.firstChild);

(追加):

// Grab an element
var el = document.getElementById('thingy'),
    // Make a new div
    elChild = document.createElement('div');

// Give the new div some content
elChild.innerHTML = 'Content';

// Jug it into the parent element
el.appendChild(elChild);

获取第一个和最后一个li

var lis = document.getElementById("id-of-ul").getElementsByTagName("li"),
    first = lis[0],
    last = lis[lis.length -1];

如果您ul没有id,您可以始终使用getElementsByTagName("ul")并找出其索引,但我建议添加一个id

w46czmvw

w46czmvw2#

我想你正在寻找:

Element.insertAdjacentHTML(position, text);

其中position可以是:
'beforebegin'
在元素本身之前。
'afterbegin'
就在元素内部,在它的第一个子元素之前。
'beforeend'
就在元素内部,在它的最后一个子元素之后。
'afterend'
元素本身之后。

text是HTML字符串。
Doc @ MDN

pzfprimi

pzfprimi3#

可以使用insertBefore()

var node = document.getElementById('id');
node.parentNode.insertBefore('something', node);

文件:insertBefore()
没有insertAfter方法。它可以通过将insertBefore方法与nextSibling()组合来模拟:

node.parentNode.insertBefore('something', node.nextSibling);

相关问题