Как сделать тег опции выбранным по его атрибуту value в jQuery? - PullRequest
1 голос
/ 12 апреля 2011
<select id="cars" name="cars">
    <option value="1">Volvo</option>
    <option value="2">Ferrari</option>
    <option value="3">Mercedes</option>
</select>

Я хочу сделать вариант с выбранным значением 2 (Ferrari).Я немного новичок в jQuery.Я безуспешно пробовал следующее:

var modelId = 2;
jQuery( "#cars" ).val( jQuery( "#cars option[value=" + modelId + "]" ).val() );

Ответы [ 4 ]

4 голосов
/ 12 апреля 2011

Установите значение с помощью функции val .

$("#cars").val('2');

Попробуйте этот пример .

1 голос
/ 12 апреля 2011

В сочетании с совершенно правильным примером Анурага вы должны сделать что-то вроде:

var modelId = /* your value */;
$('#cars').val(modelId);

Таким образом, вы точно знаете, почему вы устанавливаете свой раскрывающийся список на то, что вы делаете, когда возвращаетесь, чтобы сохранить этот код через шесть месяцев или год. Кроме того, если вам нужно реорганизовать свой код, теперь вы устанавливаете свое значение на основе переменной, в которую можно передать, а не магическое число, например:

function setModel(modelId) {
    $('#cars').val(modelId);        
}
1 голос
/ 12 апреля 2011

jQuery должен выглядеть следующим образом:

var modelId = 2;
jQuery("#cars")
    .find("option[value=" + modelId + "]")
    .attr("selected","selected");

Ссылка на jsFiddle: http://jsfiddle.net/mitchmalone/CLgAS/

Кроме того, это гораздо более гибкое решение, предлагающее вам возможность использовать его в различных целях.путей.

1 голос
/ 12 апреля 2011
jQuery('#cars option[value=' + modelId + ']').attr('selected', true);

Что я склонен использовать.

...