我有多个选择,有多个值(零,一,二,三,四)。如果我选择value1
,我会检查所有选择的最后value1
。实际的代码完成了这项工作。
但如果我选择两个value1
,则会得到两个值
我需要的是只使用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>
答案 0 :(得分:0)
为了获得最后一个选项,其值等于一个,您可以写:
$('.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');
});
&#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;
答案 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>