我有多个选择,具有多个值(零、一、二、三、四)。如果我选择 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>
最佳答案
为了获得值等于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/