Выбор варианта с заданным значением

0

Я пытаюсь выбрать конкретную опцию из списка выбора в зависимости от значения, у меня есть следующая разметка:

<select name="class" id="class">
    <option value="1">679460ED-0B15-4ED9-B3C8-A8C276DF1C82</option>
    <option value="2">B99BF873-7DF0-4E7F-95FF-3F1FD1A26139</option>
    <option value="3">1DCD5AD7-F57C-414</option>
    <option value="4">6B0170AA-F044-4F9C-8BB8-31A51E452CE4</option>
    <option value="5">C6A8B</option>
    <option value="6">1BBD6FA4-335A-4D8F-8681-DFED317B8052</option>
    <option value="7">727D71AB-F7D1-4B83-9D6D-6BEEAAB</option>
    <option value="8">BC4DE8A2-C864-4C7C-B83C-EE2450AF11B1</option>
    <option value="9">AIR CONDITIONING  SYSTEM</option>
    <option value="10">POWER GENERATION SYSTEM</option>
</select>

<script>
    selectThisValue('#class',3);
</script>

в .js

function selectThisValue(element,value) {
    console.log(value); 
    var elem = $(element + ' option[value=' + value + ']');
    console.log(elem);
    elem.attr("selected", "selected");
}

Результаты для console.log следующие:

3

[prevObject: i.fn.i.init[1], context: document, selector: "#class option[value=3]", jquery: "1.10.2", constructor: function…]

Но это не работает, ошибок нет, но ничего не происходит. Пожалуйста, помогите определить, где я ошибаюсь.

  • 0
    Где вы положили вызов функции?
  • 0
    Функция запускается, как только загружается JavaScript? В этом случае вам нужно взглянуть на $ (document) .ready (); функция. По сути, JavaScript работает до того, как элемент select существует.
Показать ещё 3 комментария
Теги:
dom

3 ответа

1
Лучший ответ

Вы можете установить выбранную опцию только путем вызова $.val().

$("#class").val(3);

Рабочий пример: http://jsfiddle.net/QphFX/

1

Просто:

$('#class').val('3');

Или используйте индекс опциона (если вы его знаете):

$('#class').prop('selectedIndex', 2);
-2

Это было бы лучшим решением вашей проблемы, поскольку вы уже используете jQuery:

$("#class")[0].selectedIndex = 0 //or whichever index you want selected

Ещё вопросы

Сообщество Overcoder
Наверх
Меню