在纯 javaScript 中,通过 className 获取元素是丑陋的。请参阅如何在 JavaScript 中按类获取元素?了解更多信息。
基本上,你会想要这个功能:
function getElementsByClass(tagType, className) {
var elems = document.getElementsByTagName(tagType);
var returns = [];
for (var i in elems) {
if ((' ' + elems[i].className + ' ').indexOf(' ' + className + ' ') > -1) {
returns.push(elems[i]);
}
}
return returns;
}
一旦你有了它,剩下的就不是太糟糕了:
var dynamic = document.createElement("div");
dynamic.innerHTML = "this is my contact number.";
var elements = getElementsByClass("div", "fawas");
if (elements.length > 0) {
// just change the first, as you did in your post
elements[0].parentNode.insertBefore(dynamic, elements[0].nextSibling);
}
我动态创建您的新 div,而不仅仅是一个文本字符串。
然后,我得到你想要插入的元素的父元素insertBefore
,在你选择的元素之后使用这个函数。
这是一个工作小提琴。
正如其他人向您展示的那样,使用 jQuery 可以更简洁。不知道node.js
有没有功能会更方便,所以给出了纯JS的方案。