У меня есть несколько операторов 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>