Как получить несколько вариантов одновременно - PullRequest
0 голосов
/ 24 марта 2011

Предположим, у меня есть выпадающее меню:

<select id="color">
    <option value="white" selected="selected">White</option>
    <option value="black">Black</option>
    <option value="red">Red</option>
    <option value="green">Green</option>
    <option value="green">Transparent</option>
</select>

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

$('#color option:eq(2)') //get 'red'

Но есть ли способ получить несколько вариантов одновременно? Я попробовал следующий код:

$('#color option:eq(2, 3)') //Try to get 'Red' and 'Green'

и

$('#color option:eq([2, 3])') //Try to get 'Red' and 'Green'

Но ни один не работает, как обойти, чтобы получить несколько вариантов одновременно?

Ответы [ 3 ]

2 голосов
/ 24 марта 2011

Вы можете использовать .slice(), если хотите получить подмножество коллекции.

$("#color option").slice(2,3)

Если вы хотите получить разные элементы, вы можете сделать следующее:

$("#color option").filter(":eq(2), :eq(4)");

Пример кода на jsfiddle .

0 голосов
/ 24 марта 2011

Вы можете обращаться с ним как с любым другим массивом после выбора элемента:

var opts = $('#color option')
var output = ""    
for(var x=0;x<opts.length;x++) {
    output+=" " + opts[x].value    
}
alert(output)
0 голосов
/ 24 марта 2011

Исходя из вашего другого вопроса , вы можете рассмотреть возможность добавления класса к определенным параметрам. Это не только позволяет захватывать несколько, но и дает некоторый контекст:

<select id="color">
    <option value="white" selected="selected" class="past">White</option>
    <option value="black" class="past">Black</option>
    <option value="red" class="future">Red</option>
    <option value="green" class="future">Green</option>
    <option value="green" class="mixed">Transparent</option>
</select>

Затем, когда вы пишете свою логику, вы можете сделать что-то вроде

$('option.future, option.multi').hide();
$('option.past').show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...