• ベストアンサー

dblclickでdiv要素を一回だけ作成したい。

javascriptで、dblclickでcreateElementを使いdiv要素を作成してappendChildでbodyの部分にdiv要素を挿入することを考えています。 (この部分は自分で解決できました。) この際、dblclickのたびにdiv要素を挿入するのではなく、すでにdblclickでdiv要素が挿入されている場合にはdiv要素を改めて挿入しないようにしたいのですが、どのようにすれば改めてdiv要素を挿入しないようにできるのでしょうか。 javascript初心者です。宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.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>

spring_man
質問者

お礼

度々ありがとうございます。 参考にさせて頂いて、if文を追加する位置を変更したら、うまくいくようになりました。 どうもありがとうございました。

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

作成するdivにはidを付ける。 作成するときにdocument.getElementByIdで、既に存在していないか確認する。 (既に存在していれば作成しない)

spring_man
質問者

お礼

早速の回答ありがとうございます。 参考にさせていただいて、if文を使ってdiv要素にsetAttributeでidを付与して試してみたのですが、はじめてdblclickした時点ではまだidをつけたdiv要素が作成されていないためか(?)、「document.getElementById("id名") has no properties」とのエラーがでてしまいます。なにか失念していることがあるのでしょうか?

関連するQ&A