0

たとえば、次のような html 要素があります。

<div>
    <script type="text/javascript" src="js/embed.js"></script>
</div>

jquery を使用せずに、上記の div に新しい div を作成するには、embed.js にどのように記述すればよいですか?

どうもありがとうございました

4

4 に答える 4

2

必要な結果は次のマークアップのようになります。

<div>This is the new div</div>
<div>
    <script type="text/javascript" src="js/embed.js"></script>
</div>

その場合は、次のことを行う必要があります。

  1. src「js/embed.js」に等しいスクリプト タグを見つけます。
  2. 親(divコンテナ)を選択
  3. 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)
    }
}

jsフィドル

マークアップを次のようにしたい場合:

<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])
    }
}

フィドル

于 2013-05-27T11:40:47.997 に答える
1

以下はうまくいくかもしれません:

<div id="mydiv">
</div>

function addDiv()
{
  document.getElementById("mydiv").innerHTML = "<div>some other text</div>"
}
于 2013-05-27T11:25:33.573 に答える
1

使用するだけdocument.write()です:

document.write('<div></div>');

document.write()実行されている位置に出力を書き込みます。この場合、最初の<div>.

于 2013-05-27T11:23:43.467 に答える
0
document.querySelector("div script[src='js/embed.js']").parentElement.appendChild(document.createElement("div"));
于 2013-05-27T11:50:14.897 に答える