我在javascript中有这个功能:
function inc(filename) {
var head = document.getElementsByTagName('head').item(0);
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
head.appendChild(script);
}
如果我调用此函数,它将在DOM中创建一个元素。没关系。
但是如果我再次调用它,我希望它在前一个元素的顶部创建一个元素,这样我在DOM中只有一个由这个函数创建的元素。
它已经这样做了吗?如果没有,我怎么能实现呢?
我不太了解DOM,因为你可以从这个问题看到。
答案 0 :(得分:2)
使用replaceChild()
查看代码段时,您必须使用开发工具查看它是否有效。
function swap(parent, replacement, url) {
var alpha = document.querySelector(parent);
var target = alpha.childNodes[0];
var omega = document.createElement(replacement);
omega.src = url;
alpha.replaceChild(omega, target);
}
swap('head', 'script', 'http://end.com');
<!doctype html>
<html>
<head>
<script src="http://beginning.com"></script>
</head>
<body>
</body>
</html>
答案 1 :(得分:1)
虽然这完全没有意义,但您可以通过更改此行来轻松实现此行为
script = document.createElement('script');
到
script = script || document.createElement('script');