¿Cómo puedo probar los selectores de CSS1-3 para verificar que obtengan los elementos correctos, p. con JavaScript (tal vez jQuery)?¿Cómo pruebo los selectores de CSS en JavaScript?
Respuesta
La forma más simple y tradicional es, por mucho, no usar JavaScript, y simplemente configurar una página de prueba a mano, donde puede probar selectores al contenido de su corazón. Los casos de prueba que ve en la Web (como el conocido CSS3.info Selectors Test) son en realidad versiones acabadas alojadas en línea.
Pero si estás buscando un método de JavaScript, puedes probar el Selectors API. Está disponible en implementaciones de DOM modernas (IE8 + y otras) y proporciona una interfaz de JavaScript para consultar el DOM para nodos de elementos mediante selectores de CSS, así como para probar selectores de CSS nativamente compatibles con un navegador determinado.
(Para los navegadores que no implementan la API Selectores, tendrá que confiar en jQuery, pero recuerde que brinda soporte para un conjunto de selectores diferente del que admite un navegador, así como su propio no-selector extensiones estándar que no se encuentran en el Selectors spec. un ejemplo del uso de jQuery con la consola de JavaScript de Chrome para probar un selector se pueden encontrar here.)
llamada querySelector()
o querySelectorAll()
dependiendo de lo que desea probar, y comprobar el valor de retorno (preferiblemente en las herramientas de desarrollo de su navegador ya que solo está probando):
Si se encuentran coincidencias, el método anterior devuelve el primer
Element
coincidente, mientras que el último devuelve todos los elementos coincidentes comoNodeList
.Si no se encuentra nada, el primero devuelve
null
mientras que el último devuelve unNodeList
vacío.Si el selector no es válido, se lanzará una excepción que podrá capturar.
Éstos son algunos ejemplos con el editor de comandos (multilínea) en la consola de Firebug en Firefox 10, probados en this very question:
encontrar el primer
h1
enbody
:var h1 = document.body.querySelector('h1'); console.log(h1);
<h1 itemprop="name">
Consultando descendientes de ese
h1
elemento que acabamos de encontrar:var subnodes = h1.querySelectorAll('*'); console.log(subnodes[0]);
<a class="question-hyperlink" href="https://stackoverflow.com/questions/9165859/how-do-i-test-css-selectors-in-javascript">
Prueba de la pseudo-clase
:-moz-any()
en Firefox (:-webkit-any()
en Safari/Chrome):// This selector works identically to h1 > a, li > a var hyperlinks = document.querySelectorAll(':-moz-any(h1, li) > a'); console.log(hyperlinks);
[a#nav-questions /questions, a#nav-tags /tags, a#nav-users /users, a#nav-badges /badges, a#nav-unanswered /unanswered, a#nav-askquestion /questions/ask, a.question-hyperlink /questio...vascript]
Pruebas de un selector inexistente (que perhaps many of us wish did exist):
// :first-of-class doesn't exist! var selector = 'div.answer:first-of-class'; try { var firstAnswer = document.querySelector(selector); console.log(firstAnswer); } catch (e) { console.log('Invalid selector: ' + selector); }
Invalid selector: div.answer:first-of-class
http://selectorgadget.com es bastante agradable para probar y construir selectores CSS. Simplemente arrastre y suelte un fragmento de JavaScript que proporcionan en su barra de marcadores y haga clic en él cuando lo necesite.
- 1. selectores CSS: cómo seleccionar 'para' en CSS?
- 2. Caracteres especiales en los selectores CSS
- 3. ¿Los selectores css de atributo de datos son más rápidos que los selectores de clase?
- 4. Selectores CSS negativos
- 5. selectores CSS en Javascript con todas las etiquetas H
- 6. ¿Cómo se llama esa cosa entre los "selectores" de CSS?
- 7. ¿Herramienta para verificar los selectores de CSS no utilizados?
- 8. ¿Cómo pruebo los servicios web?
- 9. Sobrescribir los selectores de clase CSS sin! Important
- 10. Número de selectores en un archivo css
- 11. Rendimiento de los selectores de CSS, DOM Parsing
- 12. Combinar CSS selectores de atributos
- 13. separados por comas selectores CSS
- 14. ¿Cómo pruebo los ayudantes en Rails?
- 15. ¿Los selectores de CSS distinguen entre mayúsculas y minúsculas?
- 16. Si los selectores de CSS son por #id, ¿necesita delimitarlos?
- 17. ¿Hay selectores de CSS específicos para IE10?
- 18. Retire selectores CSS sin usar
- 19. CSS Child vs Descendant selectores
- 20. selectores CSS,> frente espacio
- 21. ¿Cómo pruebo los javascripts de geolocalización?
- 22. Coma en CSS, selectores múltiples que usan el mismo CSS
- 23. Especificar varios selectores de atributos de CSS
- 24. ¿Quitar selectores no utilizados en una hoja de estilo CSS?
- 25. ¿Cómo se definen los selectores de atributos en SASS?
- 26. ¿Cuáles son las prioridades entre los selectores CSS
- 27. Selectores de hermanos adyacentes CSS - Problema IE8
- 28. Selectores CSS de entrada múltiple [tipo]
- 29. ¿Cómo pruebo los diálogos modales con Selenium?
- 30. ¿Cómo puedo obtener todos los elementos secundarios de los elementos con selectores CSS que usan selenio?
Puedo sugerir que lea [este] (http://lea.verou.me/2011/07/detecting-css-selectors-support-my-jsconf-eu-talk/) artículo de blog, que discute su exacta problema y da algunas soluciones. –