使用javascript填充从1到100的下拉菜单

使用javascript填充从1到100的下拉菜单,javascript,html,for-loop,Javascript,Html,For Loop,我试图编写一个javascript代码,用1到100的选项标记填充select标记 但它并没有给我99个选项,而是给了我一个只有100个值的选项 我很乐意理解并知道如何解决这个问题 var-selectAge=document.getElementById(“selectAge”); document.onload=(函数(){ 对于(让i=1;i您在循环的每次迭代中都会覆盖innerHTML。 一种解决方案是连接:+= var-selectAge=document.getElementBy

我试图编写一个javascript代码,用1到100的选项标记填充select标记

但它并没有给我99个选项,而是给了我一个只有100个值的选项

我很乐意理解并知道如何解决这个问题

var-selectAge=document.getElementById(“selectAge”);
document.onload=(函数(){

对于(让i=1;i您在循环的每次迭代中都会覆盖
innerHTML

一种解决方案是连接:
+=

var-selectAge=document.getElementById(“selectAge”);

对于(让i=1;i您正在覆盖innerHTML

var-selectAge=document.getElementById(“selectAge”);
//使用addEventlistener,否则将覆盖其他“onload”事件
window.addEventListener('load',()=>{

对于(让i=1;i尝试添加一个
+=

这会将每个选项从0添加到100,因为
+=
意味着该值将添加到以前存在的值中

selectAge.innerHTML +="<option>" + i + "</option>";
selectAge.innerHTML+=“i+”;
除此之外(正如其他人已经指出的),您正在使用
=
而不是
+=
来连接,操作100倍DOM是个坏主意,
只使用
innerHTML
一次:

let ageOptions=“”;

对于(设i=1;i实际上,您必须在循环的每个阶段联系对
innerHTML
的更改,请参阅以下代码:

const selectAge = document.getElementById("selectAge");
document.onload = ( () => {
  for (let i = 1; i <= 100; i++)
    selectAge.innerHTML += `<option>${i}</option>`;
})();
const selectAge=document.getElementById(“selectAge”);
document.onload=(()=>{

对于(让i=1;i每个循环你都会给
selectAge.innerHTML
分配新的值,但是你实际上希望每个循环都给现有的循环添加新的值。你可以用
+=
开关来做,这个开关与
selectAge.innerHTML=selectAge.innerHTML+…

相同。为什么讨厌?我不知道你为什么投了3张反对票!!你的答案是正确的,你只是没有写代码,只是它!!他们不会投票给你感谢你的额外方法:创建元素并将它们附加到DOM中。