javascript - 获取最后选择的值

标签 javascript jquery

我有多个选择,具有多个值(零、一、二、三、四)。如果我选择 value1,我会检查所有选择中的最后一个 value1。实际的代码完成了这项工作。

pic1

但是如果我选择两个value1,它就会得到两个值

pic2

我需要的是仅获取带有value1的最后一个选择。

$(document).on("change", ".sheet2_etapa", function() {
  var valor_etapa = "";
  $(".sheet2_etapa").each(function() {
    $(this).text();
  });
  var valor_etapa = $(this).val();
  console.log("Valor de la Etapa " + valor_etapa);
  console.log("-------------------------------------");
  if (valor_etapa === "zero") {

  } else if (valor_etapa === "one") {
    $("tbody tr td select [value=one]").filter(":selected").last().css('background', 'red');
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="sheet2_etapa">
  <option value="zero">Select</option>
  <option value="one">value1</option>
  <option value="two">value2</option>
  <option value="three">value3</option>
  <option value="four">value4</option>
</select>

最佳答案

为了获得值等于one的最后选择的选项,您可以编写:

$('.sheet2_etapa option:selected[value=one]:last')

如果您需要获取相应的选择标签,则只需链接即可:

.closest('select.sheet2_etapa')

代码片段:

$(document).on("change", ".sheet2_etapa", function () {
    var valor_etapa = $("tbody tr td select [value=one]:selected:last").val();
    if (valor_etapa === "one") {
        $("tbody tr td select [value=one]:selected:last").closest('select').css('background', 'red');
        $("tbody tr td select option:selected").filter('[value=one]:not(:last)').closest('select')
            // deselect
            //.val('zero')
            // reset background
            .css('background', 'inherit');
    }
    $("tbody tr td select option:selected").filter(':not([value=one])').closest('select')
            // reset background
            .css('background', 'inherit');

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<table>
    <tbody>
    <tr>
        <td>
            <select class="sheet2_etapa 1">
                <option value="zero" selected>Select</option>
                <option value="one" >value1</option>
                <option value="two">value2</option>
                <option value="three">value3</option>
                <option value="four">value4</option>
            </select>
        </td>
    </tr>
    <tr>
        <td>
            <select class="sheet2_etapa 2">
                <option value="zero">Select</option>
                <option value="one" selected>value1</option>
                <option value="two">value2</option>
                <option value="three">value3</option>
                <option value="four">value4</option>
            </select>
        </td>
    </tr>
    <tr>
        <td>
            <select class="sheet2_etapa 3">
                <option value="zero">Select</option>
                <option value="one">value1</option>
                <option value="two">value2</option>
                <option value="three">value3</option>
                <option value="four">value4</option>
            </select>
        </td>
    </tr>
    </tbody>
</table>

关于javascript - 获取最后选择的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470712/

相关文章:

javascript - 在 ko.observableArray 模型绑定(bind)问题中向下移动项目

javascript - 仅当新记录插入数据库时​​设置ajax调用

PHP session token 可以多次使用吗?

jquery - document.ready 和 asp.net 页面方法

javascript - .show() 在 'display :block' 之后不起作用

javascript - Angular.js 等待多个资源 (ajax) 调用

javascript - 如何使用 C++ 通过 websocket 发送数据?

javascript - 选择开始日期后自动更改结束日期

jquery - 为什么 jQuery 不总是加载?

jquery - 如何使用 jQuery 在带有动画的表格中添加新行?