У меня есть следующее (=>) Fiddle. Он выполняет поиск опции Select по значению и затем устанавливает атрибут найденного параметра как выбранный. Довольно просто. Этот скрипт (реплицированный ниже) отлично работает в IE 9 и FireFox 17, но не в Chrome OR Safari. Эти 2 браузера не могут установить атрибут как выбранный.jquery: выберите опцию выбора по значению
Я что-то упустил?
EDIT: похоже, мне нужно было использовать .prop(), а не .attr().
Выбрать HTML:
<select id="listmcu">
<option value="1002">PA</option>
<option value="1003">CA</option>
<option value="1004">OR</option>
<option value="1005">FL</option>
<option value="1006">TX</option>
</select>
JQuery;
$(function() {
var mcu = "1005";
alert ('Begin: mcu val = ' + mcu);
//$("#listmcu").find("option:contains('" + mcu + "')").each(function() {
$("#listmcu").find("option[value='" + mcu + "']").each(function() {
alert ('In contains: this val = ' + $(this).val());
if ($(this).val() == mcu) {
//$(this).attr("selected", "selected");
$(this).prop("selected", "selected"); // <== appears to work
}
});
});
'selected' это свойство, а не атрибут. Вы должны использовать 'prop()' вместо 'attr()' – jbabey