2012-05-27 15 views
53

Estoy tratando de usar document.querySelectorAll para todas las casillas de verificación que tienen el conjunto de atributos value.Cómo usar querySelectorAll solo para elementos que tienen un conjunto de atributos específico?

Hay otras casillas de verificación en la página que no tienen value conjunto, y el valor es diferente para cada casilla de verificación. Los identificadores y nombres no son únicos.

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

¿Cómo seleccionar sólo aquellas casillas de verificación que se han establecido valores?

+1

¿Esto incluye espacios en blanco? como 'values ​​=" "' – Joseph

+0

las otras casillas de verificación no tienen ningún valor por lo que no tendrían que incluir eso. – Soryn

Respuesta

116

Puede utilizar querySelectorAll() así:

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

Esto se traduce en:

obtener todas las entradas con el atributo "value" y tiene el "valor" atributo que no está en blanco.

In this demo, desactiva la casilla de verificación con un valor no en blanco.

+0

¿Cómo seleccionar solo las entradas del tipo casilla de verificación? hay muchas otras etiquetas de entrada que tienen atributos de valor, pero solo quiero las casillas de verificación. – Soryn

+1

@Soryn agrega '[type =" checkbox "]'. Actualizado mi respuesta. – Joseph

+0

ah increíble ... ¡gracias! – Soryn

5

Consejos adicionales:

Múltiples "no tienen", de entrada que no está oculta y no bloqueado:

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

También sabía usted puede hacer esto:

node.parentNode.querySelectorAll('div'); 

Esto es equivalente a jQuery's:

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

Lo que efectivamente encontrará todos los divs en "nodo" y debajo recursivamente, ¡HOT DANM!

-6

document.querySelectorAll() para la entrada solo devuelve entradas checkd por defecto.

Saludos;)

Cuestiones relacionadas