У меня есть несколько операторов Select на моей странице, и все варианты одинаковы, в основном это система ранжирования, как показано ниже.То, что я пытаюсь сделать, это выделить каждую опцию во всех операторах выбора после ее выбора.т.е. если вы выберете «1» в первом Select, он будет выделен во всех операторах Select.
Я думал, что был довольно близок с приведенным ниже кодом, но, кажется, он работает только в первый раз, когда я делаювыбор.Конечным результатом после использования всех параметров будет то, что все параметры будут выделены серым фоном.
Я использую jQuery 1.5.
.pick { background-color: #CCC; }
<table>
<tr>
<td>Drop down 1</td>
<td><select id="dd1" name="dd1">
<option value=""></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>
</select>
</td>
</tr>
<tr>
<td>Drop down 2</td>
<td><select id="dd2" name="dd2">
<option value=""></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>
</select>
</td>
</tr>
<tr>
<td>Drop down 3</td>
<td><select id="dd3" name="dd3">
<option value=""></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>
</select>
</td>
</tr>
</table>
<script type="text/javascript">
$(document).ready(function () {
$("select[name*='dd']").change(onSelectChangeDD);
});
function onSelectChangeDD() {
var selected = $("select[name*='dd'] option:selected");
var test = $(this).val();
$("select[name*='dd']").children().each(function () {
// remove all the highlights
$(this).removeClass("pick");
});
$("select[name*='dd']").children().each(function () {
// highlight the selections
if ($(this).val() == test) {
$(this).addClass('pick');
}
});
}
</script>