2011-10-31 8 views
7

मैं एक बहुत ही सरल बटन क्लिक ईवेंट हैंडलर बनाया जाँच करने के बारे में, मैं <p> तत्व जोड़ दिया बटन क्लिक करना चाहते हैं, तो आप जाँच कर सकते हैं my code here:jQuery संलग्न() और कैसे एक तत्व जोड़ा जा चुका है, तो

<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> तत्व संलग्न है)

2. jQuery में, कैसे करता है, तो कुछ तत्व पहले से ही जोड़ा जाता है की जाँच करने के? उदाहरण के लिए कैसे जांचें कि <p id="other"> पहले से ही मेरे मामले में संलग्न है या नहीं?

-------------------- अद्यतन ------------------------ -------------------

कृपया my updated code here देखें।

तो, केवल 2 प्रश्न बना रहता है ...

+2

jsfiddle mooTools को लोड करने के लिए डिफ़ॉल्ट है। मैं अक्सर इसे भी बदलना भूल जाता हूं। –

+0

स्वयं बंद टैग संलग्न कार्य को संभाल नहीं करते हैं। यद्यपि आप इसे .next() –

उत्तर

22
  1. आप mootools का उपयोग कर रहे हैं और jQuery नहीं। यदि आपका तत्व मौजूद है

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

तो

  • जांचने के लिए कि आप तत्व दो बार संलग्न नहीं करना चाहते हैं:

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

    या, आप .one(function) उपयोग कर सकते हैं [ doc]:

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

    1) डिफ़ॉल्ट रूप से MooTools में jsFiddle भार, तो आप इस काम करने के लिए jQuery शामिल करने के लिए की जरूरत है। दुनिया में कोई कारण नहीं है कि वह उदाहरण क्यों काम नहीं करेगा। (यह मानते हुए कि $ वास्तव में jQuery वस्तु, यह है कि करने के लिए मैप किया गया है।)

    2) आप देख सकते हैं एक DOMElement की nextSibling, या next() jQuery विधि का उपयोग करें, तो जैसे:

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

    पर कर सकते हैं 1 पर स्पष्टीकरण: पहेली 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'); 
    
    संबंधित मुद्दे