Tôi đang sử dụng mã này để cập nhật một div
với một yêu cầu AJAXinnerHTML thêm thay vì thay thế
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();
Tất cả mọi thứ hoạt động tốt, vấn đề là khi div
với id some_id
có rất nhiều nội dung trong đó tôi có thể thấy nội dung biến mất và sau đó xuất hiện được cập nhật sau khi yêu cầu AJAX đã được thực hiện.
Tôi nghĩ rằng đó là vì
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
là xoá bỏ và thay thế innerHTML
của div
với innerHTML
cộng với nội dung mới trước, dẫn đến một hành vi previous content → blank → updated content
.
Có cách nào để nối nội dung mới vào div
thay vì thay thế toàn bộ nội dung bằng nội dung mới?
bạn đang sử dụng jquery hoặc javascript mẹ đẻ? – Raghu
cố gắng thêm phần tử con thay vì thay thế toàn bộ html –
@Raghu Tôi đang sử dụng cả hai, nhưng giải pháp javascript thuần túy sẽ tốt hơn cho tôi – BackSlash