मुझे अपने पृष्ठ में एक div की सामग्री को एजेक्स कॉल से HTML परिणाम के साथ प्रतिस्थापित करने की आवश्यकता है। समस्या यह है कि एचटीएमएल में इसमें कुछ आवश्यक स्क्रिप्ट हैं और ऐसा लगता है कि jquery html() फ़ंक्शन उन्हें बाहर निकाल देता है, मुझे प्रतिक्रिया फ़िल्टर करने की आवश्यकता है और केवल एक विशिष्ट div प्राप्त करें।jquery html() स्क्रिप्ट टैग स्ट्रिप्स टैग
मैं एजेक्स प्रतिक्रिया से सभी स्क्रिप्ट टैग निकालने के लिए एक कामकाज पर सोच रहा हूं और फिर उन्हें डीओएम करना चाहता हूं लेकिन मुझे ऐसा करने में परेशानी हो रही है।
मेरा कोड यहां है;
$('a.link-vote').live('click',function(){
var idfeedback = $(this).attr('id').split('-')[1];
var href = $(this).attr('href');
$('.feedback-' + idfeedback + '-loader').show();
$.ajax({
type: "POST",
url: href,
success: function(response){
var x = $(response).find('#feedback-'+ idfeedback).html();
$('.feedback-' + idfeedback + '-loader').hide();
$('#feedback-'+ idfeedback).html(x);
}
});
return false;
});
मैं इस पुराने विषय पाया: jQuery - script tags in the HTML are parsed out by jQuery and not executed
लेकिन किसी निष्कर्ष है। मैंने वहां सुझाए गए समाधानों की कोशिश की लेकिन उनमें से कोई भी काम नहीं करता।
संपादित करें: मुझे लगता है कि पुराने विषय के आधार पर एक कामकाज मिल गया है लेकिन यह सुंदर नहीं है;
var dom = $(response);
// var x = $(response).find('#feedback-'+ idfeedback).html();
$('.feedback-' + idfeedback + '-loader').hide();
//$('#feedback-'+ idfeedback).html(x);
$('#feedback-'+ idfeedback).html(dom.find('#feedback-'+ idfeedback).html());
dom.filter('script').each(function(){
var obj = $(this);
$('#feedback-'+ idfeedback + ' .feedback-comments').append(obj);
});
एक आसान तरीका होना चाहिए।
बच्चों को खाओ, हाहाहा! –
'.innerHTML 'ठीक काम कर रहा है लेकिन नई सामग्री के अंदर स्क्रिप्ट निष्पादित नहीं होती है ... कोई विचार? – agpt
@ एमान, कृपया आप जो करने की कोशिश कर रहे हैं, जो आपने कोशिश की है, और यह कैसे असफल रहा है, के स्पष्टीकरण के साथ एक प्रश्न पोस्ट करें। – eyelidlessness