Seleziona più discendenti con jQuery?
-
07-07-2019 - |
Domanda
Ho questo modulo:
<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>
Come posso selezionare input
e select
con un selettore jQuery?
Ho provato questo, ma ha selezionato tutte le selezioni e gli input sulla pagina:
$("form[name='customize'] select,input")
Soluzione
La virgola nella stringa del selettore separa espressioni completamente separate, proprio come nei CSS, quindi il selettore che hai dato ottiene gli elementi di selezione all'interno del modulo chiamato " personalizza & " e tutti gli input nel modulo (come hai descritto). Sembra che tu voglia qualcosa del genere:
$("form[name='customize'] select, form[name='customize'] input")
o se non ti piacciono le ripetizioni, questo:
$("form[name='customize']").children("select, input")
Altri suggerimenti
È anche possibile una sintassi più breve $ (selettore, parentelector). Esempio in questa pagina:
// all spans
$("span").css("background-color","#ff0");
// spans below a post-text class
$("span", ".post-text").css("background-color","#f00");
Modifica - Ho dimenticato il caso particolare di diversi tipi di bambini!
// spans and p's below a post-text class
$("span,p", ".post-text").css("background-color","#f00");
Per me il tuo suggerimento ha funzionato. Puoi anche usare
form[name='customize'] select, form[name='customize'] input
Entrambi i selettori funzionano come la vedo io. Forse il problema sta da qualche altra parte?
Ho provato
$("form[name='customize'] select, input").css( 'font-size', '80px' );
sul tuo esempio HTML. Le dimensioni del carattere per la selezione e l'input sono cambiate.
--- modifica ---
Il mio suggerimento sopra è quello giusto. Seleziona solo gli elementi nel modulo di personalizzazione.