¿Cómo usar querySelectorAll solo para elementos que tienen un conjunto de atributos específico?


Estoy tratando de usar document.querySelectorAll para todas las casillas de verificación que tienen el atributo value establecido.

Hay otras casillas de verificación en la página que no tienen value establecido, y el valor es diferente para cada casilla de verificación. Sin embargo, los id y nombres no son únicos.

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

¿Cómo selecciono solo esas casillas de verificación que tienen valores establecidos?

Author: BoltClock, 2012-05-28

3 answers

Puedes usar querySelectorAll() así:

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

Esto se traduce como:

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

En esta demostración , desactiva la casilla de verificación con un valor que no esté en blanco.

 137
Author: Joseph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-11 05:16:11

Consejos Adicionales:

Múltiples "nots", entrada que NO está oculta ni deshabilitada:

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

También sabías que puedes hacer esto:

node.parentNode.querySelectorAll('div');

Esto es equivalente a jQuery:

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

Que efectivamente encontrará todos los divs en" nodo " y por debajo recursivamente, HOT DAMN!

 8
Author: mattdlockyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-14 23:15:06

document.querySelectorAll() for input devuelve solo entradas checkd por defecto.

Saludos;)

 -8
Author: DannyS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-09 14:14:35