2011-01-27 2 views
2

Довольно легко найти select по его id и получить/установить его выбранный option. Однако, скажем, я знаю только значение в option и я в первую очередь необходимо найти в select, который имеет такую ​​возможность (это предполагается, есть только один) и затем набор, который option быть выбран. Как мне это сделать?Элемент 'select' Найти один из элементов 'option'?

ответ

2

EDIT: Я просто заметил, что вы намерены установить выбранную опцию по ее значению.

Для этого это действительно просто. Вобще:

$('#mySelect').val('somevalue'); 

Если у вас нет другого способа предназначаться, что выбрать, то вы можете использовать свое предыдущее решение, а затем вызвать .val().


$('option[value="somevalue"]').closest('select'); 

Это использует attribute-equals-selector(docs), чтобы получить возможность где атрибут value приравнивает значение, которое вы ищете.

Затем он использует метод closest()(docs) для доступа к его ближайшему <select> предкам.

Преимущество этого подхода состоит в том, что 'option[value="somevalue"]' является допустимым селектором querySelectorAll()(docs), поэтому вы получите повышение производительности в браузерах, которые его поддерживают.

Если имеется более одного <select> с опцией, которая имеет это значение, вы можете добавить к исходному селектору целевое значение для правильного выбора.

$('#mySelect option[value="somevalue"]') 
+0

Какой смысл найти ближайший выбор? – Victor

+0

Отлично, спасибо. И дополнительная благодарность за добавление дальнейшей разработки, пока я тестировал код! – David

+1

@Victor: Потому что этот элемент OP пытался получить. Селектор находит '