Выбрать несколько потомков с помощью jQuery?

У меня есть эта форма:

<form name="customize">
    Only show results within 
        <select name="distance" id="slct_distance">
            <option>25</option>
            <option>50</option>
            <option>100</option>
            <option value="10000" selected="selected">Any</option>
    </select> miles of zip code
    <input type="text" class="text" name="zip_code" id="txt_zip_code" />
    <span id="customize_validation_msg"></span>
</form>

Как выбрать input и select с помощью одного селектора jQuery?

Я пробовал это, но он выбрал все выборки и входы на странице:

$("form[name='customize'] select,input")

Ответы

Ответ 1

Запятая в селекторной строке разделяет полностью отдельные выражения, как и в CSS, поэтому выбранный вами селектор получает элементы выбора в форме с именем "customize" и все входы формы (как вы описали), Похоже, вы хотите что-то вроде этого:

$("form[name='customize'] select, form[name='customize'] input")

или если вы не переписываете, это:

$("form[name='customize']").children("select, input")

Ответ 2

Также возможен более короткий синтаксис $(селектор, родительский выбор). Пример на этой странице:

// all spans
$("span").css("background-color","#ff0");

// spans below a post-text class
$("span", ".post-text").css("background-color","#f00");

Изменить - я забыл конкретный случай с несколькими детьми!

// spans and p below a post-text class
$("span,p", ".post-text").css("background-color","#f00");

Ответ 3

Для меня ваше предложение сработало. Вы также можете использовать

form[name='customize'] select, form[name='customize'] input

Оба селектора работают так, как я вижу. Может быть, проблема лежит где-то в другом месте?

Я пробовал

$("form[name='customize'] select, input").css( 'font-size', '80px' );

на вашем примере HTML. Изменен размер шрифта для выбора и ввода.

--- изменить ---

Мое предложение выше верно. Он выбирает только элементы в форме customize.