Выбрать несколько потомков с помощью 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.