Javascript 减去单击时选项本身的值

Javascript 减去单击时选项本身的值,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我正在尝试在单击后更新selectbox选项的值。它应该将所选值减去自身 <div class="pull-left col-xs-12 col-sm-4 col-md-4"> <label for="rooms" style="color:black">No. of rooms: </label> <select required tabindex="10" id="selectBoxStandard" name="n_roo

我正在尝试在单击后更新selectbox选项的值。它应该将所选值减去自身

    <div class="pull-left col-xs-12 col-sm-4 col-md-4">

    <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>
      <option value="7">7</option>
     </select>
    </div>
<div class="button-style-1" style="padding-bottom:80px" style="padding-bottom:40px"><a href="javascript:standardRoom()" ><i class="fa fa-calendar"></i><span class="mobile-visibility">BOOK
                                      </span></a></div>
如果单击后所选值为3,则剩余值应更新为:

    <div class="pull-left col-xs-12 col-sm-4 col-md-4">

    <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>
     </select>
    </div>

房间数目:
0
1.
2.
3.
4.

这将起作用,但可能更容易或更好:

function standardRoom(){
    var last_option = $('#selectBoxStandard option:last-child').val();
    var selected_option = $('#selectBoxStandard').val();
    $("#selectBoxStandard option").each(function() {
        if($(this).val() > (last_option - selected_option)){
            $(this).remove();
        }
    });
}

这将起作用,但可能更容易或更好:

function standardRoom(){
    var last_option = $('#selectBoxStandard option:last-child').val();
    var selected_option = $('#selectBoxStandard').val();
    $("#selectBoxStandard option").each(function() {
        if($(this).val() > (last_option - selected_option)){
            $(this).remove();
        }
    });
}

要从
中删除最后一个孩子,请根据
选项
值选择BoxStandard

$('button')。打开('click',standardRoom);
功能标准间(){
$('#selectBoxStandard')。查找(“选项:第n个最后的子项(-n+”++$('#selectBoxStandard')。val()+”)。删除();
}

房间数目:
0
1.
2.
3.
4.
5.
6.
7.
更新

要从
中删除最后一个孩子,请根据
选项
值选择BoxStandard

$('button')。打开('click',standardRoom);
功能标准间(){
$('#selectBoxStandard')。查找(“选项:第n个最后的子项(-n+”++$('#selectBoxStandard')。val()+”)。删除();
}

房间数目:
0
1.
2.
3.
4.
5.
6.
7.
更新
添加此js

let total = 7
function changed(){
    let selBox = document.getElementById('selectBoxStandard');
    let value = selBox.value;
    //remove all options
    while(selBox.children.length > 0) selBox.removeChild(selBox.children[0]);
    //add new options according to value;
    for(let i = 0;i<7-value+1;i++){
        selBox.innerHTML += `<option value="${i}">${i}</option>` 
    }
    //resets value
    selBox.value = value;
}
total=7
函数已更改(){
让selBox=document.getElementById('selectBoxStandard');
让value=selBox.value;
//删除所有选项
而(selBox.children.length>0)selBox.removeChild(selBox.children[0]);
//根据价值增加新的期权;
对于(让i=0;i添加此js

let total = 7
function changed(){
    let selBox = document.getElementById('selectBoxStandard');
    let value = selBox.value;
    //remove all options
    while(selBox.children.length > 0) selBox.removeChild(selBox.children[0]);
    //add new options according to value;
    for(let i = 0;i<7-value+1;i++){
        selBox.innerHTML += `<option value="${i}">${i}</option>` 
    }
    //resets value
    selBox.value = value;
}
total=7
函数已更改(){
让selBox=document.getElementById('selectBoxStandard');
让value=selBox.value;
//删除所有选项
而(selBox.children.length>0)selBox.removeChild(selBox.children[0]);
//根据价值增加新的期权;


对于(让i=0;我请解释更多关于您的预期output@Justcode如果选择的选项为1,则应减去1到7,选项值应停止在6。因为1减去7等于6。很抱歉出现混淆。如果用户选择1怎么办?@Justcode它将删除一个选项。然后选项值应仅为1-6请详细说明你没料到吗output@Justcode如果选择的选项为1,则应减去1到7,选项值应停止在6。因为1减去7等于6。很抱歉出现混淆。如果用户选择1怎么办?@Justcode它将删除一个选项。然后选项值应仅为1-6。该选项正在工作,但之后不会自动更新值单击。它应该在单击后更新选项值。该值很可能会消失。如果选择5,7-5=2,这意味着无法选择5。如果您想要该值,可以创建隐藏输入并更改该值以便存储。我的意思是,为什么选择该值后该值会立即更改?而不是在单击按钮后。这是正在工作,但它不会在单击后自动更新值。它应该在单击后更新选项值。该值很可能会消失。如果选择5,7-5=2,这意味着无法选择5。如果您想要该值,则可以创建隐藏输入并更改该值以便存储。我的意思是,为什么该值会更改为一旦我选择它?不是在我单击按钮之后。这可以工作,但当我选择另一个选项时,它仍然会在按钮单击后更新值。它应该在每次我单击按钮时都会更改。在代码中看不到任何按钮。如果您想要更新按钮单击事件,我会在代码段中添加一个。这可以工作,但它仍然会更新v当我选择另一个选项时,单击按钮后的值。它应该在每次单击按钮时更改。我在代码中看不到任何按钮。如果您想要更新按钮单击事件,我在代码段中添加了一个。添加了按钮,抱歉混淆,它应该在单击按钮后更改添加了按钮,抱歉c在Fusion中,它应该在单击按钮后更改
<div onclick="changed()" class="button-style-1" style="padding-bottom:80px" style="padding-bottom:40px"><a href="javascript:standardRoom()" ><i class="fa fa-calendar"></i><span class="mobile-visibility">BOOK
                                      </span></a></div>