[英]Find a referenceNode in DOM by ClassName
I am attempting to do a jquery .after
in pure JS. 我正在尝试在纯JS中执行一个jquery .after
。
I have the following script that works for the first div where I append by getElementById
but not the second where I am using getElementsByClassName
我有以下脚本适用于我通过getElementById
追加的第一个div,但不适用于我正在使用getElementsByClassName
的第二个div
How can I successfully append by using the element's class? 如何使用元素的类成功附加?
HTML HTML
<div id="first-div">First Div - found by ID</div>
<br>
<div class="second-div">Second Div - found by ClassName</div>
JS JS
function insertAfter(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
var element1 = document.createElement("div");
element1.className = 'row'
element1.innerHTML = 'Text to append to first div by ID';
var div1 = document.getElementById('first-div');
insertAfter(div1, element1);
var element2 = document.createElement("div");
element2.className = 'row'
element2.innerHTML = 'Text to append to second div by class';
var div2 = document.getElementsByClassName('second-div');
insertAfter(div2, element2);
var div2 = document.getElementsByClassName('second-div')[0];
getElementsByClassName返回一个可迭代的,因此您必须先说哪个[0]
getElementsByClassName
returns all the elements of that class, therefore the correct way is to iterate through each item getElementsByClassName
返回该类的所有元素,因此正确的方法是遍历每个项目
var element2 = document.createElement("div");
element2.className = 'row'
element2.innerHTML = 'Text to append to second div by class';
var div2 = document.getElementsByClassName("second-div");
for(var i = 0; i < div2.length; i++)
{
insertAfter(div2.item(i), element2);
}
var div2 = document.getElementsByClassName('second-div');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.