2010-08-12 14 views

Respuesta

11

Puede utilizar el starts with selector

$("div[id^='div']") 

Lo anterior se agarra todos los divs que tienen un atributo id que comienza con las letras div.

jsFiddle example that makes all divs with id div... invisible.


Aquí es cómo manejar el caso más complicado si desea hacer coincidir div seguido de un número, pero no div seguido por otra cosa. De modo que div1 coincidiría, pero divx no.

En este caso usamos filter() con una función. La función debería volverse verdadera para cuando queremos una coincidencia y falsa para cuando no lo hagamos. match() y una expresión regular es ideal para esto (se puede utilizar [0-9] para representar un dígito en una expresión regular o el simple [\d]):

$("div").filter(function() { 
    return $(this).attr("id").match(/^div[\d]+$/) 
}) 

attr() devuelve el valor del atributo especificado, en este caso id.

jsFiddle example that makes all div followed by number disappear, but not div followed by other things.

+1

Mientras excelente de la respuesta de Pedro son totalmente correcto, el mejor * * hay que hacer es añadir una clase de "mydivs" o lo que sea (en el HTML) a todos estos divs para que pueda seleccionarlos por clase. Es por eso que existen clases para agrupar elementos similares. :) –

7

Usted podría utilizar esta (no he probado, aunque):

jQuery("div[id^='div']") 

Esto hará que todos los div elementos que tienen un id que comienzan con "div".

Si quieres todas las div elementos que tienen un idcontiene "div", entonces se podría utilizar este:

jQuery("div[id*='div']") 
2

El uso de identificación como Div1, div2, div3 es una mala práctica. Es como nombrar sus clases "black-bold-12px" y luego asignar esos estilos a esa clase. Se pierde el punto en la semántica.

La forma correcta de hacer esto sería usar una clase para todos ellos.

Los elementos pueden ser de más de una clase, utilizando un espacio como separador:

<div class="something usethis">...</div> 
<div class="usethis something_else">...</div> 
<div class="usethis">...</div> 
<div class="something anotherclass usethis" id="someId">...</div> 

<script> 
    $(".usethis").html("New contents for all of them!"); 
</script> 
+2

Las otras respuestas responden a la pregunta, pero esta es la respuesta CORRECTA –

+2

Si tiene una serie de publicaciones, que tienen ID como 'post-1',' post-23', etc. donde el número es un identificador de publicación universal único parece perfectamente legítimo y semánticamente informativo ... Pero sí, es ciertamente más fácil trabajar con clases bien pensadas cuando sea posible.---- Sin embargo, hablando de páginas semánticamente bien formadas, Javascript externo es superior al uso de la etiqueta

  • 11. ¿Cómo obtengo el siguiente elemento HTML en Nokogiri?
  • 12. ¿Cómo obtengo el contenido XML o HTML completo de un elemento usando ElementTree?
  • 13. ¿Cómo muevo un elemento HTML en jQuery?
  • 14. acceder al elemento html usando xpath
  • 15. ¿Cómo obtengo el elemento seleccionado por nombre y luego obtengo el valor seleccionado de un menú desplegable usando jQuery?
  • 16. ¿Cómo obtengo el conteo total de registros Json usando JQuery?
  • 17. jQuery: ¿cómo obtengo el elemento debajo de mi cursor?
  • 18. ¿Cómo obtengo el HTML de toda la página con jQuery?
  • 19. ¿Cómo obtengo la opacidad de un elemento usando Javascript?
  • 20. ¿Cómo obtengo la identificación del elemento ordenable?
  • 21. ¿Cómo selecciono un elemento hermano usando jQuery?
  • 22. Cómo cambiar CSS del elemento usando jQuery
  • 23. Obtener último elemento visible usando jQuery
  • 24. Recuperando atributos de datos HTML usando jQuery
  • 25. ¿Eliminar el html adjunto usando jQuery?
  • 26. Agregar evento HTML w/click usando jQuery
  • 27. Insertar HTML en DIV usando jQuery
  • 28. Cómo cambiar el orden de la etiqueta html usando jquery
  • 29. ¿Cómo puedo activar el clic derecho si dejó clic en algún elemento html usando jQuery?
  • 30. posición jQuery del elemento después de html() llamar