获取最后的选择值

时间:2017-09-28 13:42:30

标签: 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>

2 个答案:

答案 0 :(得分:0)

为了获得最后一个选项,其值等于一个,您可以写:

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

如果你需要获得相应的选择标记,它就足以链接:

.closest('select.sheet2_etapa')

摘录:

&#13;
&#13;
$(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');

});
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个。 这可能对你有用。

$('#sheet2_etapa').on('change',function() {
      var latest_value = $(this).closest('select').find('option')
                          .filter(':selected:last').val();
      console.log( latest_value);
      //alert(latest_value)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select id="sheet2_etapa" class="sheet2_etapa" name="empname" multiple="multiple">
      <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>