※ ChatGPTを利用し、要約された質問です(原文:body内で<script>の位置のオブジェクトを取得する方法)
body内で<script>の位置のオブジェクトを取得する方法
このQ&Aのポイント
JavaScriptでbody内の特定の場所に配置された<script>タグ内で生成されるオブジェクトを取得する方法を探しています。
document.writeでinputを生成する方法は不適切であり、<script>の位置や親のnodeを取得することで目的を達成できるかもしれません。
IE6以降の対象ブラウザで、body内の<script>の位置や親のnodeを取得する方法か、別の方法で上記の要件を実現する方法を教えてください。
body内で<script>の位置のオブジェクトを取得する方法
javascriptで、下記状況でNode(もしくはObject)を取得する方法がないか探しています。
body内の所定の場所に、<script>タグによりJavaScriptが記述されており、
その<script>タグ内で、<input>を生成しそれに対しイベントの追加や所定の処理を行いたいのです。
例)--------------------------------------------------
<body>
<input type="text" value="">
<script type="text/javascript">
/*
ここで、inputを生成後そのObjectに対して処理を行うため、
inputのオブジェクトをnameやidを使わず取得したい。
*/
</script>
<input type="text" value="">
</body>
--------------------------------------------------
document.writeでinputの生成はできますが、目的に合わないかなと思っています。
理由として、厳密にObjectは取得できない場合があると考えています。
document.write("<input type='button' name='hoe'...");
document.getElementsByName("hoe");
と行えば取得できるとおもいますが、nameでは重複しているときに、処理の対象が特定できない(と思っている)ためです。
idも、処理のためだけにid付するのは、避けたいなと考えています。
そこで、<script>の位置(もしくは親)のnodeを取得できれば,そこからappend出来る可能性があると、発想したのですが、その方法が分からず詰まってしまいました。
(対象ブラウザIE6以降)
<body>内の<script>位置のnodeを取得する方法か、別の発想で上記を実現できる方法があれば、教えてください。
お礼
cyokodogさんありがとうございます。 ご回答遅くなりましてすみません。 どうやらcreateElementの動作を誤解していたようです。 createElementを行うと、「既存のBodyの最後にelementが追加される」と認識していました。 が、「既存」の部分を、読み込まれたhtmlファイルに記述されている最後に追加されると思い込んでいました。 [誤ったイメージ] ------------------------------ <body> <script> createElement</script> <input><input> <!-- ここにElementが追加される --> </body> ------------------------------ 実験したところ、createElementを行ったscriptタグの個所に挿入されることがわかりまして。希望のことができることを確認しました。 [本来の動作] ------------------------------ <body> <script> createElement</script> <!-- ここにElementが追加される --> <input><input> </body> ------------------------------ コメントいただきました皆様ありがとうございました。