たとえば、次のような html 要素があります。
<div>
<script type="text/javascript" src="js/embed.js"></script>
</div>
jquery を使用せずに、上記の div に新しい div を作成するには、embed.js にどのように記述すればよいですか?
どうもありがとうございました
たとえば、次のような html 要素があります。
<div>
<script type="text/javascript" src="js/embed.js"></script>
</div>
jquery を使用せずに、上記の div に新しい div を作成するには、embed.js にどのように記述すればよいですか?
どうもありがとうございました
必要な結果は次のマークアップのようになります。
<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])
}
}
以下はうまくいくかもしれません:
<div id="mydiv">
</div>
function addDiv()
{
document.getElementById("mydiv").innerHTML = "<div>some other text</div>"
}
使用するだけdocument.write()
です:
document.write('<div></div>');
document.write()
実行されている位置に出力を書き込みます。この場合、最初の<div>
.
document.querySelector("div script[src='js/embed.js']").parentElement.appendChild(document.createElement("div"));