- ベストアンサー
dblclickでdiv要素を一回だけ作成したい。
javascriptで、dblclickでcreateElementを使いdiv要素を作成してappendChildでbodyの部分にdiv要素を挿入することを考えています。 (この部分は自分で解決できました。) この際、dblclickのたびにdiv要素を挿入するのではなく、すでにdblclickでdiv要素が挿入されている場合にはdiv要素を改めて挿入しないようにしたいのですが、どのようにすれば改めてdiv要素を挿入しないようにできるのでしょうか。 javascript初心者です。宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
現状のソースの全貌が見えないのでなんともいえませんが、次のサンプルのような感じで。 <html> <head> <title></title> <script type="text/javascript"> function sample(){ if(document.getElementById('XYZ')) return;//id='XYZ'のエレメントは既に在る var Div = document.createElement('div'); Div.setAttribute('id','XYZ'); Div.innerHTML='追加しました'; document.body.appendChild(Div); } </script> </head> <body> <p><input type="button" value="DIV生成" onclick="sample()"></p> </body> </html>
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
作成するdivにはidを付ける。 作成するときにdocument.getElementByIdで、既に存在していないか確認する。 (既に存在していれば作成しない)
お礼
早速の回答ありがとうございます。 参考にさせていただいて、if文を使ってdiv要素にsetAttributeでidを付与して試してみたのですが、はじめてdblclickした時点ではまだidをつけたdiv要素が作成されていないためか(?)、「document.getElementById("id名") has no properties」とのエラーがでてしまいます。なにか失念していることがあるのでしょうか?
お礼
度々ありがとうございます。 参考にさせて頂いて、if文を追加する位置を変更したら、うまくいくようになりました。 どうもありがとうございました。