Javascript innerHTML是否跨不同的行工作?
我试图使用innerHTML从用户的输入创建一个下拉列表,但它不起作用。下面的代码输出一个空下拉列表。问题似乎是将Javascript innerHTML是否跨不同的行工作?,javascript,Javascript,我试图使用innerHTML从用户的输入创建一个下拉列表,但它不起作用。下面的代码输出一个空下拉列表。问题似乎是将和写入拆分在不同的行上。如果我将和放在for循环中,它会工作,但会为每个项目创建一个单独的下拉列表。有什么想法吗 document.getElementById('text').innerHTML += "<select>"; for (ddNum=0; ddNum <= ddWanted; ddNum++) { var ddIDvar = document.get
和
写入拆分在不同的行上。如果我将
和
放在for循环中,它会工作,但会为每个项目创建一个单独的下拉列表。有什么想法吗
document.getElementById('text').innerHTML += "<select>";
for (ddNum=0; ddNum <= ddWanted; ddNum++)
{
var ddIDvar = document.getElementById('inputID' + ddNum);
document.getElementById('text').innerHTML += "<option>" + ddIDvar.value + "</option>";
}
document.getElementById('text').innerHTML += "</select><br />";
document.getElementById('text').innerHTML+=“”;
对于(ddNum=0;ddNum,浏览器可能正在咀嚼您正在添加的HTML,试图通过添加结束标记使其“正确”。与其反复将不完整的标记集附加到.innerHTML并强制进行可能昂贵的回流/重画,不如将您的选择构建为字符串,然后在完成后将其附加到.innerHTML:
var sel = '<select>';
for (ddNum ...) {
sel += '<option>....</option>';
}
sel += '</select>';
.... .innerHTML += sel;
var sel='';
用于(ddNum…){
sel+='..';
}
sel+='';
..…innerHTML+=sel;
浏览器可能正在咀嚼您正在添加的HTML,试图通过添加结束标记使其“正确”。与其重复将不完整的标记集附加到.innerHTML并强制进行可能昂贵的回流/重画,不如将您的选择构建为字符串,然后在完成后将其附加到.innerHTML:
var sel = '<select>';
for (ddNum ...) {
sel += '<option>....</option>';
}
sel += '</select>';
.... .innerHTML += sel;
var sel='';
用于(ddNum…){
sel+='..';
}
sel+='';
..…innerHTML+=sel;
您不能将innerHTML
设置为HTML标记的一半。
如果您尝试,浏览器将为您修复它,这不是您想要的
您需要组装一个完整的HTML字符串,然后设置innerHTML
您不能将innerHTML
设置为HTML标记的一半。
如果您尝试,浏览器将为您修复它,这不是您想要的
您需要组装一个完整的HTML字符串,然后设置innerHTML
每次更改innerHTML的值时,都会触发回流,这对性能不好。相反,请提前构建HTML字符串并编写innerHTML一次:
var s = document.getElementById('text').innerHTML + "<select>";
for (ddNum=0; ddNum <= ddWanted; ddNum++)
{
var ddIDvar = document.getElementById('inputID' + ddNum);
s += "<option>" + ddIDvar.value + "</option>";
}
document.getElementById('text').innerHTML = s + "</select><br />";
var s=document.getElementById('text').innerHTML+“”;
对于(ddNum=0;ddNum,每次更改innerHTML的值时都会触发回流,这对性能不好。相反,请提前构建HTML字符串并编写innerHTML一次:
var s = document.getElementById('text').innerHTML + "<select>";
for (ddNum=0; ddNum <= ddWanted; ddNum++)
{
var ddIDvar = document.getElementById('inputID' + ddNum);
s += "<option>" + ddIDvar.value + "</option>";
}
document.getElementById('text').innerHTML = s + "</select><br />";
var s=document.getElementById('text').innerHTML+“”;
对于(ddNum=0;ddNum)