Моя цель - выбрать последний вариант из всех раскрывающихся списков на странице (все идет правильно, но когда я пытаюсь запустить свой код во второй раз, результаты не меняются) Я попытался зарегистрировать код селектора jquery, но не понял в результате я не знаю, почему мой код работает только впервые. Вот мой код:
$(document).ready(function() {
$("#btn1").click(function() {
$("select option:last-child").attr("selected", "selected"); //Select the last drop down list option of each drop down list.
setTimeout(function() {
alert("Done!");
}, 10)
});
});//Style of my button.
.myButton {
-moz-box-shadow: inset 0px 1px 0px 0px #54a3f7;
-webkit-box-shadow: inset 0px 1px 0px 0px #54a3f7;
box-shadow: inset 0px 1px 0px 0px #54a3f7;
background-color: #007dc1;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
border: 1px solid #124d77;
display: inline-block;
cursor: pointer;
color: #ffffff;
font-family: Arial;
font-size: 15px;
padding: 10px 9px;
text-decoration: none;
}
.myButton:hover {
background-color: #0061a7;
}
.myButton:active {
position: relative;
top: 1px;
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<select>
<option id = "a1" value = "cars">Select Car</option>
<option id = "a2" value = "volvo">Volvo</option>
<option id = "a3" value = "mercedes">Mercedes</option>
<option id = "a4" value = "audi">Audi</option>
</select>
</tr>
<tr>
<select>
<option id = "b1" value = "nationality">Select Nationality</option>
<option id = "b2" value = "lebanese">Lebanese</option>
<option id = "b3" value = "chinese">Chinese</option>
<option id = "b4" value = "egyption">Egyption</option>
</select>
</tr>
<tr>
<select>
<option id = "c1" value = "color">Select Color</option>
<option id = "c2" value = "red">Red</option>
<option id = "c3" value = "yellow">Yellow</option>
<option id = "c4" value = "green">Green</option>
</select>
</tr>
<tr>
<select>
<option id = "d1" value = "computers">Select Computer</option>
<option id = "d2" value = "hp">Hp</option>
<option id = "d3" value = "acer">Acer</option>
<option id = "d4" value = "toshiba">Toshiba</option>
</select>
</tr>
<tr>
<button id = "btn1" class = "myButton">Select Last Value</button>
</tr>
</table>Этот код дает мне результаты только в первый раз, но после второго раза что-то идет не так.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно сбросить атрибут раскрывающегося списка, чтобы ваш код мог работать, не нарушая падение.
Вы можете выполнить следующую строку.
$("select option").removeAttr("selected");
Надеюсь это поможет :)
$(document).ready(function() {
$("#btn1").click(function() {
$("select option").removeAttr("selected");
$("select option:last-child").attr("selected", "selected"); //Select the last drop down list option of each drop down list.
setTimeout(function() {
alert("Done!");
}, 10)
});
});<!DOCTYPE html>
<html>
<head>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<style>
//Style of my button.
.myButton {
-moz-box-shadow: inset 0px 1px 0px 0px #54a3f7;
-webkit-box-shadow: inset 0px 1px 0px 0px #54a3f7;
box-shadow: inset 0px 1px 0px 0px #54a3f7;
background-color: #007dc1;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
border: 1px solid #124d77;
display: inline-block;
cursor: pointer;
color: #ffffff;
font-family: Arial;
font-size: 15px;
padding: 10px 9px;
text-decoration: none;
}
.myButton:hover {
background-color: #0061a7;
}
.myButton:active {
position: relative;
top: 1px;
}
</style>
<script>
</script>
</head>
<body>
<table>
<tr>
<select>
<option id = "a1" value = "cars">Select Car</option>
<option id = "a2" value = "volvo">Volvo</option>
<option id = "a3" value = "mercedes">Mercedes</option>
<option id = "a4" value = "audi">Audi</option>
</select>
</tr>
<tr>
<select>
<option id = "b1" value = "nationality">Select Nationality</option>
<option id = "b2" value = "lebanese">Lebanese</option>
<option id = "b3" value = "chinese">Chinese</option>
<option id = "b4" value = "egyption">Egyption</option>
</select>
</tr>
<tr>
<select>
<option id = "c1" value = "color">Select Color</option>
<option id = "c2" value = "red">Red</option>
<option id = "c3" value = "yellow">Yellow</option>
<option id = "c4" value = "green">Green</option>
</select>
</tr>
<tr>
<select>
<option id = "d1" value = "computers">Select Computer</option>
<option id = "d2" value = "hp">Hp</option>
<option id = "d3" value = "acer">Acer</option>
<option id = "d4" value = "toshiba">Toshiba</option>
</select>
</tr>
<tr>
<button id = "btn1" class = "myButton">Select Last Value</button>
</tr>
</table>
</body>
</html>Вы устанавливаете атрибут для этой опции, но я думаю, вам следует вместо этого изменить <select>.
$(document).ready(function() {
$("#btn1").click(function() {
//Select the last drop down list option of each drop down list.
$("select").each(function() {
this.selectedIndex = this.length - 1;
});
});
});//Style of my button.
.myButton {
-moz-box-shadow: inset 0px 1px 0px 0px #54a3f7;
-webkit-box-shadow: inset 0px 1px 0px 0px #54a3f7;
box-shadow: inset 0px 1px 0px 0px #54a3f7;
background-color: #007dc1;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
border: 1px solid #124d77;
display: inline-block;
cursor: pointer;
color: #ffffff;
font-family: Arial;
font-size: 15px;
padding: 10px 9px;
text-decoration: none;
}
.myButton:hover {
background-color: #0061a7;
}
.myButton:active {
position: relative;
top: 1px;
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<select>
<option id = "a1" value = "cars">Select Car</option>
<option id = "a2" value = "volvo">Volvo</option>
<option id = "a3" value = "mercedes">Mercedes</option>
<option id = "a4" value = "audi">Audi</option>
</select>
</tr>
<tr>
<select>
<option id = "b1" value = "nationality">Select Nationality</option>
<option id = "b2" value = "lebanese">Lebanese</option>
<option id = "b3" value = "chinese">Chinese</option>
<option id = "b4" value = "egyption">Egyption</option>
</select>
</tr>
<tr>
<select>
<option id = "c1" value = "color">Select Color</option>
<option id = "c2" value = "red">Red</option>
<option id = "c3" value = "yellow">Yellow</option>
<option id = "c4" value = "green">Green</option>
</select>
</tr>
<tr>
<select>
<option id = "d1" value = "computers">Select Computer</option>
<option id = "d2" value = "hp">Hp</option>
<option id = "d3" value = "acer">Acer</option>
<option id = "d4" value = "toshiba">Toshiba</option>
</select>
</tr>
<tr>
<button id = "btn1" class = "myButton">Select Last Value</button>
</tr>
</table>
Когда вы повторно запускаете свой код, в последней опции уже выбран атрибут attr. Итак, в qay код пропускает его, и поэтому вы видите последний вариант как результат. Но если вы проверите код, вы увидите, что для него выбран атрибут attr. После того, как вы сбросите все атрибуты attrs. Он выполнит изменение в DOM