की जगह संलग्न मैं एक AJAX अनुरोधinnerHTML बजाय
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
}
}
xmlhttp.open("GET", "http://example.com/");
xmlhttp.setRequestHeader('Content-Type', 'utf8');
xmlhttp.send();
सब कुछ ठीक काम करता है के साथ एक div
अद्यतन करने के लिए इस कोड का उपयोग कर रहा है, समस्या यह है कि जब आईडी some_id
साथ div
उस में सामग्री का एक बहुत कुछ है मैं सामग्री गायब हो रहा हूं और फिर AJAX अनुरोध निष्पादित होने के बाद अद्यतन दिख रहा हूं।
मुझे लगता है कि यह क्योंकि
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
को हटाने और पिछले innerHTML
प्लस नई सामग्री के साथ div
की innerHTML
की जगह, एक previous content → blank → updated content
व्यवहार में परिणित कर रहा है।
div
पर नई सामग्री को अपनी पूरी सामग्री को बदलने के बजाय नई सामग्री को जोड़ने का कोई तरीका है? आप (जो संभावना लगती है) केवल HTML के स्ट्रिंग है, तो
document.getElementById("some_id").appendChild(xmlhttp.responseText);
, तो:,
var newElement = document.createElement('div');
newElement.innerHTML = xmlhttp.responseText;
document.getElementById("some_id").appendChild(newElement);
दूसरी ओर यदि आप संलग्न करना होगा
करना होगा आप jQuery या देशी जावास्क्रिप्ट का उपयोग कर रहे हैं? – Raghu
पूरे एचटीएमएल –
@Raghu को बदलने के बजाए बाल तत्व जोड़ने का प्रयास करें, मैं दोनों का उपयोग कर रहा हूं, लेकिन मेरे लिए एक शुद्ध जावास्क्रिप्ट समाधान बेहतर होगा – BackSlash