2012-05-27 7 views
53

Sto tentando di utilizzare document.querySelectorAll per tutte le caselle di controllo che hanno il set di attributi value.Come utilizzare querySelectorTutti solo per gli elementi con un set di attributi specifico?

Nella pagina sono presenti altre caselle di controllo che non hanno impostato value e il valore è diverso per ciascuna casella di controllo. Gli id ​​e i nomi non sono però unici.

Esempio: <input type="checkbox" id="c2" name="c2" value="DE039230952"/>

Come faccio a selezionare solo quelle caselle che hanno fissato i valori?

+1

include spazi vuoti? come 'values ​​=" "' – Joseph

+0

le altre checkbox non hanno alcun valore quindi non dovrebbe includerlo. – Soryn

risposta

116

È possibile utilizzare querySelectorAll() come questo:

var test = document.querySelectorAll('input[value][type="checkbox"]:not([value=""])'); 

questo si traduce in:

ottenere tutti gli ingressi con il "valore" di attributo e ha il "valore" attributo che non è vuoto.

In this demo, disattiva la casella di controllo con un valore non vuoto.

+0

Come selezionare solo gli input di tipo di checkbox? ci sono molti altri tag di input che hanno attributi di valore, ma voglio solo le checkbox. – Soryn

+1

@Soryn aggiungi '[type =" checkbox "]'. Aggiornato la mia risposta. – Joseph

+0

ah fantastico ... grazie! – Soryn

5

Consigli aggiuntivi:

multipli "abbienti", ingresso che non è nascosto e non disabili:

:not([type="hidden"]):not([disabled]) 

Inoltre lo sapevate che si può fare questo:

node.parentNode.querySelectorAll('div'); 

Questo equivale a jQuery:

$(node).parent().find('div'); 

Quale troverà efficacemente tutti i div in "nodo" e in basso ricorsivamente, HAN DANM!

-6

document.querySelectorAll() per input restituisce solo input checkd per impostazione predefinita.

Saluti;)

Problemi correlati