2011-10-31 9 views
7

を追加されているかどうかを確認するには、私は非常に単純なボタンのクリックイベントハンドラを作った、私はあなたがmy code hereを確認することができ、ボタンがクリックされたときに<p>要素が追加されていたいと思います:は、(追加)とどの要素が

<div id="wrapper"> 
    <input id="search_btn" value="Search" type="button"> 
</div> 
$("#search_btn").click(function(){ 
    $("#wrapper").append("<p id='other'>I am here</p>"); 
}); 

私がお願いし二つの質問を持っている:

を私は予想通り

1、なぜ私の.append()は、いくつかの要素が既に追加されているかどうかを確認する方法、(それが<p>要素を追加します)jQueryの中

2.動作しませんか?たとえば、私の場合に<p id="other">がすでに追加されているかどうかを確認する方法は?

--------------------更新------------------------ -------------------

my updated code hereを確認してください。だから、唯一の第二の質問は...

+2

デフォルトはMooToolsを読み込むことです。私はしばしばそれを変更することを忘れてしまいます。 –

+0

自己終了タグは、追加機能を処理しません。あなたは.next()でそれを行うことができますが、 –

答えて

22
  1. jQueryではなくmootoolsを使用しています。

    $("#search_btn").click(function() { 
        if($('#other').length == 0) { 
         $("#wrapper").append("<p id='other'>I am here</p>"); 
        } 
    }); 
    

    それとも、あなたが.one(function)を使用することができますが、[:あなたは二度の要素を追加したくない場合は、あなたの要素はそう

if($('#other').length > 0)

が存在するかどうかを確認するに

  • doc]:

    $("#search_btn").one('click', function() { 
        $("#wrapper").append("<p id='other'>I am here</p>"); 
    }); 
    
  • 4

    1のまま

    )MooToolsの中jsFiddleロードデフォルトでは、あなたはこれが機能するためにjQueryを含める必要があります。この例がうまくいかない理由は、世界にはありません。 ($が実際にjQueryオブジェクトにマッピングされると仮定すると)

    2)あなたはそうのような、DOMElementnextSiblingを確認し、またはnext() jQueryの方法を使用することができます。

    if(!$('#something').next().length) { 
        //no next sibling. 
    } 
    
    +0

    Clarification on 1:fiddleはjQueryライブラリを読み込んでいませんが、mootoolsは読み込んでいます。これは動作します:http://jsfiddle.net/j36ye/16/ – Lekensteyn

    1

    あなたのフィドルはムーツールフレームワークを使用しています。左側のjqueryフレームワークを使用するように変更してください。要素が存在するかどうかを確認する方法http://jsfiddle.net/KxGsj/

    2

    http://jsfiddle.net/j36ye/17/

    $("#search_btn").click(function(){ 
        if(($('#other').length) == 0) { 
         $("#wrapper").append("<p id='other'>I am here</p>"); 
        } 
        return false 
    }); 
    

    それとも

    var other_appended = false; 
    
    $("#search_btn").click(function(){ 
        if(other_appended == false) { 
         $("#wrapper").append("<p id='other'>I am here</p>"); 
          other_appended = true; 
        } 
        return false; 
    }); 
    
    2

    参照してください:

    if($("p#other").length > 0) { 
        // a p element with id "other" exists 
    } 
    else { 
        // a p element with id "other" does not exist 
    } 
    
    1

    チェック要素がすでに追加されている場合:

    alert($(this).parent().length?'appended':'not appended'); 
    
    関連する問題