我正在创建一个动态选择框,在更改文本部分时将填充数据。我宁愿将数据集设置为某些文本而不是追加。
例如:
更改选择框时会调用此函数:
function createDetails(...) {
var details = document.getElementById("detailsDIV");
var docFragment = document.createDocumentFragment();
containerDiv = document.createElement("div");
// Create five div sections with the text for the details section
var nameTextNode = createTextDivSect(nameStr);
var phoneTextNode = createTextDivSect("Phone: " + phoneStr);
var faxTextNode = createTextDivSect("Fax: " + faxStr);
var websiteTextNode = createTextDivSect("Website: " + websiteStr);
var emailTextNode = createTextDivSect("Email: " + emailStr);
// Append the text sections to the container DIV
containerDiv.appendChild(nameTextNode);
containerDiv.appendChild(phoneTextNode);
containerDiv.appendChild(faxTextNode);
// Add the container div to the doc fragment
docFragment.appendChild(containerDiv);
// Add the doc fragment to the div
details.appendChild(docFragment);
}
////
通过这种方法,它假设我要附加到一个部分。有没有办法可以设置孩子。我想我可以删除孩子,然后设置它。但我认为这会浪费资源。
答案 0 :(得分:1)
如果您想在不使用innerHTML的情况下立即设置整个div,可以使用replaceChild()
:
function createDetails(...) {
var details = document.getElementById("detailsDIV");
var docFragment = document.createDocumentFragment();
// Process docFragment here...
var parentNode = details.parentNode;
parentNode.replaceChild(docFragment, details);
}