我可以通过<select>innerHTML将函数放在表中吗?



这就是我一直在尝试做的事情。到目前为止,它还没有奏效。我不知道这是否可能,但我希望有人可以提供帮助。我愿意接受任何建议。

谢谢

cell1.innerHTML = "<b>" +  (i+1) + "</b>";

cell2.innerHTML = "<b>" + array1[j] + "</b>";
cell3.innerHTML = '<select id="hGls">
                      <option selected="">-</option>
                      <option value="0">0</option>
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option>
                      <option value="4">4</option>
                      <option value="5">5</option>
                  </select>';
cell4.innerHTML = <select id="aGls">
                      <option selected="">-</option>
                      <option value="0">0</option>
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option>
                      <option value="4">4</option>
                      <option value="5">5</option>
                      <option value="6">6</option>
                      <option value="7">7</option>
                      <option value="8">8</option>
                      <option value="9">9</option>
                      <option value="10">10</option>
                      <option value="11">11</option>
                      <option value="12">12</option>
                      <option value="13">13</option>
                      <option value="14">14</option>
                      <option value="15">15</option>
                      <option value="16">16</option>
                      <option value="17">17</option>
                      <option value="18">18</option>
                      <option value="19">19</option>
                      <option value="20">20</option>
                  </select>;

只需删除换行符(或转义换行符)并将 cell4 的选择括起来。

cell4.innerHTML = '<select id="aGls"><option selected="">-</option><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option></select>';

演示

在javascript中你不能有多行字符串,要解决这个问题,你需要转义新行:

cell3.innerHTML = '<select id="hGls">
                      <option selected="">-</option>
                      <option value="0">0</option>
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option
                      <option value="4">4</option>
                      <option value="5">5</option>
                  </select>';
cell4.innerHTML = '<select id="aGls">
                      <option selected="">-</option>
                      <option value="0">0</option>
                      <option value="1">1</option>
                      <option value="2">2</option>
                      <option value="3">3</option>
                      <option value="4">4</option>
                      <option value="5">5</option>
                      <option value="6">6</option>
                      <option value="7">7</option>
                      <option value="8">8</option>
                      <option value="9">9</option>
                      <option value="10">10</option>
                      <option value="11">11</option>
                      <option value="12">12</option>
                      <option value="13">13</option>
                      <option value="14">14</option>
                      <option value="15">15</option>
                      <option value="16">16</option>
                      <option value="17">17</option>
                      <option value="18">18</option>
                      <option value="19">19</option>
                      <option value="20">20</option>
                  </select>;

通过函数?

function addNumbersOpts(id, max) {
    var buff = [];
    for (var i = 0; i <= max; i++)
        buff.push('<option value="' + i + '">' + i + '</option>');
    return '<select id="' + id + '">' + buff.join('n') + '</select>';
}
cell3.innerHTML = addNumbersOpts('hGls', 5);
cell4.innerHTML = addNumbersOpts('aGls', 20);
  1. 您缺少引号cell4.innerHTML =

  2. 您应该使用串联编写代码:

    cell3.innerHTML = '<select id="hGls">' +
                          '<option selected="">-</option>' +
                          '<option value="0">0</option>' +
                          ...
                      '</select>';
    

    这使它更加清晰。

    在 Altermativeley,您可以使用 来转义换行符或将它们挤成一行(如其他答案所建议的那样),但使用串联要清晰得多,并且不会因浏览器优化而产生性能开销。

最新更新