2012-01-10 21 views
25

मूर्खतापूर्ण त्वरित प्रश्न संलग्न:jQuery लोड() और

मेरे पास मेरी:

$('#result').load('ajax/test.html'); 

लेकिन क्या अगर मैं #result में मेरी भरी हुई सामग्री सम्मिलित है, लेकिन # करने के लिए इसे पहले जोड़ें नहीं करना चाहते परिणाम, सभी उदाहरण तत्वों को बनाए रखने? क्या यह एक चर बनाने के लिए संभव है, इसे सामग्री के साथ लोड करें और फिर इसे मेरे #result में संलग्न या प्रीपेड करें? मैं कुछ अन्य परिदृश्यों की कल्पना करता हूं जहां मेरे ब्रांड नए चर के साथ मैं इसे डोम में डालने से पहले इसे कुशल बना सकता हूं।

उत्तर

19
var response; 
$.ajax({ type: "GET", 
    url: "ajax/test.html", 
    async: false, 
    success : function(text) 
    { 
     response= text; 
    } 
}); 
$('#result').prepend('<div>'+response+'</div>'); 

आप की जरूरत है "async: गलत" तो आप प्रतिक्रिया के लिए प्रतीक्षा करें। यदि आप इसके लिए प्रतीक्षा नहीं करते हैं (सामान्य अजाक्स एसिंक्रोनस कॉल) आपके पास अज्ञात समय के लिए एक अपरिभाषित चर होगा, इसलिए यह खतरनाक हो सकता है।

संपादित करें: जैसा कि टिप्पणियां सही कहती हैं, "async: false" का उपयोग करना सामान्य नहीं है और बदसूरत है। आम तौर पर आप प्रतिक्रिया में हेरफेर करेंगे और सफलता कॉलबैक के अंदर इसे डीओएम में डालेंगे। एसिंक का उपयोग केवल तभी जरूरी होगा जब आपको वास्तव में एक वैरिएबल में प्रतिक्रिया की आवश्यकता हो, जो उस चर का उपयोग करने के लिए किसी अन्य चीज की प्रतीक्षा कर रही हो, ऐसा न हो।

$.ajax({ type: "GET", 
    url: "ajax/test.html", 
    success : function(text) 
    { 
     $('#result').prepend('<div>'+text+'</div>'); 
    } 
}); 
+0

जानना अच्छा है, शायद AJAX (get) प्राप्त करने से बेहतर होगा() ? – Daniele

+1

नहीं, $ .get $ .ajax (प्राप्त) का संक्षिप्त रूप है। लेकिन $ .get में आप "async" जैसे अधिक पैरामीटर जोड़ नहीं सकते हैं। $ .load $ .ajax (प्राप्त) के लिए भी एक छोटा सा रूप है जो तत्व में que प्रतिक्रिया लोड करता है। $ .post() के लिए वही है जो $ .ajax के लिए छोटा है (टाइप: "POST") –

+0

ग्रेट, मैं AJAX() जाऊंगा! – Daniele

15

एक त्वरित तरीका हो सकता है:

$('#result').append($('<div>').load('ajax/test.html')); 
+1

अच्छा है! लेकिन क्या होगा अगर मैं var myata = $ .load। ('AJAX/test.html')); ? – Daniele

+0

सरल और काम – Cleverson

31

आप कुछ इस तरह मतलब है?

var content; 
$.get('ajax/test.html', function(data){ 
    content= data; 
    $('#result').prepend(content); 
}); 

कि एक चर पहले में अपने लोड सामग्री बचाता है और आपको हेरफेर कर सकते हैं यह हालांकि आप चाहते हैं।

+0

यह है! धन्यवाद! – Daniele

+0

महान और आसान सोल्शन, धन्यवाद! – Tober

5

एक jQuery पोस्ट करो और वांछित div करने के लिए एक vaiable और आगे जोड़ते लिए डेटा लोड

$.post('ajax/test.html', function(data) { 
    $('#result').prepend(data); 
}); 
+0

कुछ सुझाए गए() या AJAX (प्राप्त) क्यों पोस्ट()? – Daniele

+0

@ डैनियल: दोनों काम करेंगे। आप सरल पाने के लिए जा सकते हैं() जो AJAX का सबसे सरल रूप है। यदि क्वेरीस्ट्रिंग मान बड़े हैं तो मैं पोस्ट का उपयोग करता हूं। – Shyju

+0

मैंने भावी पाठकों के लिए भ्रम से बचने में मदद के लिए उत्तर अपडेट किया। – Shyju

3

मुझे लगता है कि यह एक छोटी soluction

$.get("ajax/test.html",function (dados) { $("#result").append(dados);}); 
संबंधित मुद्दे