0

クライアントに提供するスクリプトがあります。クライアントは、html 本文のどこにでも配置できます。div、td、p、または類似のものの間に配置できます。

スクリプトは次のようになります。

<script id="myExample" src="http://www.mydomain.com/example.js" ></script>

さて、「example.js」で、スクリプトを動的にラップしたいと思います。

私は次のようなことを試しました:

// create the container div
$("#myExample").wrap('<div></div>');
document.getElementById("myExample").firstChild.setAttribute("id","myExampleContainer");

...しかし、エラーが発生します:

TypeError: document.getElementById(...).firstChild is null

現在の要素 (js である) を div でラップし、ラッパーに ID を与えることはできますか?

更新: 以下の Musa による回答を参照してください。

2 つの実用的なソリューション:

// create the container div
$("#myExample").wrap('<div></div>');
document.getElementById("myExample").parentNode.setAttribute("id","myExampleContainer");

...また:

$("#myExample").wrap('<div id="myExampleContainer"></div>');
4

3 に答える 3

1

childNodesの代わりにする必要がありますfirstChild:

document.getElementById("myExample").childNodes[ 0 ].setAttribute...

ただし、親に子ノードがあるかどうかを確認することを忘れないでください。

if( document.getElementById("myExample") && document.getElementById("myExample").childNodes.length ) {
    // some stuff here...
}
于 2013-06-09T14:57:46.187 に答える
1
$("myExample").wrap($("<div/>", { id: "myExampleContainer" }));
于 2013-06-09T14:59:09.627 に答える
1

ラッパーは子ではない親である#myExampleため、次のことを行う必要があります

document.getElementById("myExample").parentNode.setAttribute("id","myExampleContainer");

http://jsfiddle.net/awz8U/1/
または単に id を div に追加します

$("#myExample").wrap('<div id="myExampleContainer"></div>');

http://jsfiddle.net/awz8U/2/

于 2013-06-09T14:59:15.383 に答える