プロが教えるわが家の防犯対策術!

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

A 回答 (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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/07 22:16

作成するdivにはidを付ける。


作成するときにdocument.getElementByIdで、既に存在していないか確認する。
(既に存在していれば作成しない)
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/07 19:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!