javascript - 将新值附加到选项选择最后一个值

标签 javascript jquery ajax

我正在尝试在选项选择框的末尾附加新值。数字应该继续,而不是从 1 开始。

var n_standard = 1;

function removeStandard() {
  var select = document.getElementById('selectBoxStandard');
  for (var i = Number($("#selectBoxStandard").val()); i <= n_standard; i++){
    var opt = document.createElement('option');
    opt.value = i;
    opt.innerHTML = i;
    select.appendChild(opt);
  }
}
<label for="rooms" style="color:black">No. of rooms: </label>
<select required tabindex="10" id="selectBoxStandard" name="n_rooms">
  <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>
</select>

此 JavaScript 代码将根据 n_standard 的值填充选项的值,它应该继续数字而不是再次从 1 开始。

程序输出

   option
    0
    1
    2
    3
    4
    5
    6
    1

预期输出

option
0
1
2
3
4
5
6
7
8

最佳答案

您可以查询 select 当前有多少个 option 并将其添加为偏移量:

var offset = select.find("option").length;
opt.value = i + offset;

var n_standard = 1;

function removeStandard() {
  var select = $('#selectBoxStandard');
  var offset = select.find("option").length;

  // not clear why you would start at 5 and check 5<=1 which will always give nothing
  // so for demo, always adds one item (so doesn't need the loop)
  // change n_standard to add more than one at a time
  //for (var i = Number(select.val()); i <= n_standard; i++) {

  for (var i = 0; i < n_standard; ++i) {
    var opt = document.createElement('option');
    opt.value = i + offset;
    opt.innerHTML = i + offset;
    select.get(0).appendChild(opt);
  }
}

$("#b").click(removeStandard);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="rooms" style="color:black">No. of rooms: </label>
<select required tabindex="10" id="selectBoxStandard" name="n_rooms">
  <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>

</select>
<button id='b'>click me</button>

或者,如果可能存在间隙,您可以将起始值设置为最高值。

关于javascript - 将新值附加到选项选择最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551327/

相关文章:

javascript - 如何解决错误 : 'jsx' isn't currently enabled

javascript - 从 javascript 设置 HTML 元素的值

javascript - 如何正确格式化 JSON

javascript - Telerik Everlive 在一个查询中执行多个查询

javascript - 如何使用 JavaScript 选择多个类之一?

javascript - 如何从异步调用返回响应?

javascript - 是否可以从 JavaScript 中的 HTTP 响应 header 中获取 Set-Cookie 值?

jquery - 如何从div中获取值并将其放在php中的img标签src中

jquery - 禁用 jquery/ajax 中的实体

javascript - for循环中的多个ajax请求