Selecionar vários descendentes com jQuery?
-
07-07-2019 - |
Pergunta
Eu tenho este formulário:
<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>
Como posso seleccionar o input
e select
com seletor de um jQuery?
Eu tentei isso, mas é selecionado todos os seleciona e entradas na página:
$("form[name='customize'] select,input")
Solução
A vírgula na cadeia de seletor separa expressões completamente separadas, assim como em CSS, de modo que o selector você deu recebe os elementos selecionados dentro do formulário chamado "personaliza" e todas as entradas no formulário (como você descreveu) . Parece que você quer algo parecido com isto:
$("form[name='customize'] select, form[name='customize'] input")
ou se você não estiver em repitition, isto:
$("form[name='customize']").children("select, input")
Outras dicas
A sintaxe $ mais curto (selector, parentselector) também é possível. Exemplo desta página:
// all spans
$("span").css("background-color","#ff0");
// spans below a post-text class
$("span", ".post-text").css("background-color","#f00");
Edit - Eu esqueci o caso particular de vários tipos de crianças
!// spans and p's below a post-text class
$("span,p", ".post-text").css("background-color","#f00");
Para mim a sua sugestão funcionou. Você também pode usar
form[name='customize'] select, form[name='customize'] input
Os dois seletores de trabalhar como eu vê-lo. Talvez as mentiras de problema em algum outro lugar?
Eu tentei
$("form[name='customize'] select, input").css( 'font-size', '80px' );
em seu exemplo HTML. O tamanho da fonte para selecionar e entrada alterado.
--- --- editar
A minha sugestão acima é o caminho certo. Ele seleciona apenas os elementos em forma-customize.