Div - jQuery की सामग्री बदलें


89

जब एक लिंक पर क्लिक किया जाता है, तो इस div की सामग्री को बदलना कैसे संभव है?

<div align="center" id="content-container">
    <a href="#" class="click cgreen">Main Balance</a>
    <a href="#" class="click cgreen">PayPal</a>
    <a href="#" class="click cgreen">AlertPay</a>
</div>

इसी तरह के एक प्रश्न का उल्लेख करने के लिए: stackoverflow.com/questions/1309452/…
गुरजोत कौर

जवाबों:


156

आप लिंक के लिए .click घटना के लिए सदस्यता ले सकते हैं और .htmlविधि का उपयोग करके div की सामग्री को बदल सकते हैं :

$('.click').click(function() {
    // get the contents of the link that was clicked
    var linkText = $(this).text();

    // replace the contents of the div with the link text
    $('#content-container').html(linkText);

    // cancel the default action of the link by returning false
    return false;
});

ध्यान दें कि यदि आप इस div की सामग्री को क्लिक हैंडलर से बदल देते हैं जिसे आपने असाइन किया है तो नष्ट हो जाएगा। यदि आप div के अंदर कुछ नए DOM तत्वों को इंजेक्ट करने का इरादा रखते हैं, जिसके लिए आपको इवेंट हैंडलर संलग्न करने की आवश्यकता है, तो यह अटैचमेंट नई सामग्री डालने के बाद .click हैंडलर के अंदर किया जाना चाहिए। यदि घटना का मूल चयनकर्ता संरक्षित है, तो आप .delegateहैंडलर को संलग्न करने की विधि पर भी नज़र डाल सकते हैं ।


1
फिर मैं उसी पृष्ठ पर, # सामग्री-कंटेनर में ANOTHER div से सामग्री कैसे लोड कर सकता हूं?
ओलिवर 'ओली' जेन्सन

2
@ ओलिवर 'ओली' जेन्सेन, इस तरह:$('#content-container').html($('#someOtherDivId').html());
डारिन दिमित्रोव

धन्यवाद भगवान! मुझे एहसास हुआ कि .div को .val () द्वारा नहीं बदला जा सकता है; कार्य के बजाय, हमें .html () का उपयोग करना चाहिए; यह काम करने के लिए कार्य करता है! : D @cuSK धन्यवाद
gumuruh

लाइव सेवर @DarinDimitrov
उत्साहवर्धक

14

2 jQuery फ़ंक्शंस हैं जो आप यहां उपयोग करना चाहते हैं।

1) click। यह एक अनाम फ़ंक्शन लेगा क्योंकि यह एकमात्र पैरामीटर है, और जब तत्व पर क्लिक किया जाएगा तो इसे निष्पादित करेगा।

२) html। यह एक html स्ट्रिंग लेगा क्योंकि यह एकमात्र पैरामीटर है, और आपके तत्व की सामग्री को html प्रदान करेगा।

तो, आपके मामले में, आप निम्न कार्य करना चाहेंगे:

$('#content-container a').click(function(e){
    $(this).parent().html('<a href="#">I\'m a new link</a>');
    e.preventDefault();
});

यदि आप केवल अपनी div में सामग्री जोड़ना चाहते हैं , बल्कि इसमें सब कुछ बदलने के बजाय, आपको उपयोग करना चाहिए append:

$('#content-container a').click(function(e){
    $(this).parent().append('<a href="#">I\'m a new link</a>');
    e.preventDefault();
});

यदि आप चाहते हैं कि नए जोड़े गए लिंक पर क्लिक करने पर नई सामग्री भी जोड़ें, तो आपको इवेंट डेलिगेशन का उपयोग करना चाहिए :

$('#content-container').on('click', 'a', function(e){
    $(this).parent().append('<a href="#">I\'m a new link</a>');
    e.preventDefault();
});


2

आप रिप्लेसमेंट () के साथ भी ऐसा ही कर सकते हैं

$('.click').click(function() {
    // get the contents of the link that was clicked
    var linkText = $(this).text();

    // replace the contents of the div with the link text
    $('#content-container').replaceWith(linkText);

    // cancel the default action of the link by returning false
    return false;
});

.replaceWith()विधि एक कॉल के साथ उसके स्थान पर डोम और आवेषण नई सामग्री से सामग्री को हटा।


1

JQuery का उपयोग करके div की सामग्री बदलने के लिए इसे आज़माएं।

JQuery का उपयोग करके अधिक @ div की सामग्री बदलें देखें

$(document).ready(function(){
    $("#Textarea").keyup(function(){
        // Getting the current value of textarea
        var currentText = $(this).val();

        // Setting the Div content
        $(".output").text(currentText);
    });
});

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.