Выбрать несколько потомков с помощью jQuery?
-
07-07-2019 - |
Вопрос
У меня есть эта форма:
<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")
Решение
Запятая в строке селектора разделяет совершенно отдельные выражения, как в CSS, поэтому селектор, который вы указали, получает элементы выбора в форме с именем " customize " и все данные в форме (как вы описали). Похоже, вы хотите что-то вроде этого:
$("form[name='customize'] select, form[name='customize'] input")
или если у вас нет повторений, это:
$("form[name='customize']").children("select, input")
Другие советы
Более короткий синтаксис $ (селектор, родительский селектор) также возможен. Пример на этой странице:
// all spans
$("span").css("background-color","#ff0");
// spans below a post-text class
$("span", ".post-text").css("background-color","#f00");
Изменить - я забыл конкретный случай нескольких видов детей!
// spans and p's below a post-text class
$("span,p", ".post-text").css("background-color","#f00");
Для меня ваше предложение сработало. Вы также можете использовать
form[name='customize'] select, form[name='customize'] input
Оба селектора работают так, как я вижу. Может быть, проблема в другом?
Я пытался
$("form[name='customize'] select, input").css( 'font-size', '80px' );
в вашем примере HTML. Изменен размер шрифта для выбора и ввода.
--- редактировать ---
Мое предложение выше является правильным. Он выбирает только элементы в форме настройки.