例如,我有這樣的HTML元素:通過插入一個嵌入的javascript創建一個新的div?
<div>
<script type="text/javascript" src="js/embed.js"></script>
</div>
我應該如何在embed.js寫創造T他上面的div,而無需使用jQuery的一個新的div?
非常感謝您
例如,我有這樣的HTML元素:通過插入一個嵌入的javascript創建一個新的div?
<div>
<script type="text/javascript" src="js/embed.js"></script>
</div>
我應該如何在embed.js寫創造T他上面的div,而無需使用jQuery的一個新的div?
非常感謝您
這聽起來像你想看起來像下面的標記結果:
<div>This is the new div</div>
<div>
<script type="text/javascript" src="js/embed.js"></script>
</div>
如果是這樣的話,你將需要:
src
等於'js/embed.js'div
容器)insertBefore()
添加新的div
如果這一切屬實,代碼會是這個樣子:
var parent,
i = 0,
scripts = document.scripts,
newDiv =document.createElement('div');
newDiv.innerHTML = "This is the new div";
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].getAttribute('src') === 'js/embed.js') {
parent = scripts[i].parentNode;
parent.parentNode.insertBefore(newDiv, parent)
}
}
如果你想要你的標記是這樣的:
<div>
<div>This is the new div</div>
<script type="text/javascript" src="js/embed.js"></script>
</div>
然後用這個:
var i = 0,
scripts = document.scripts,
newDiv = document.createElement('div');
newDiv.innerHTML = "This is the new div";
for (i = 0; i < scripts.length; i++) {
if (scripts[i].getAttribute('src') === 'js/embed.js') {
scripts[i].parentNode.insertBefore(newDiv, scripts[i])
}
}
只需使用document.write()
:
document.write('<div></div>');
document.write()
在它正在執行,在你的情況下,第一<div>
中的位置寫入輸出。
下可能的工作:
<div id="mydiv">
</div>
function addDiv()
{
document.getElementById("mydiv").innerHTML = "<div>some other text</div>"
}
document.querySelector("div script[src='js/embed.js']").parentElement.appendChild(document.createElement("div"));
不會與XHTML工作,但在OP問題一般最好的解決方案。 – Tommi