Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Llamar a todos los divs menos a otros

Estas en el tema de Llamar a todos los divs menos a otros en el foro de Javascript en Foros del Web. Hola a todos, tengo una duda que me gustaría solucionar. En HTML, tengo varios divs que comparten el mismo class, y luego algunos tienen un ...
  #1 (permalink)  
Antiguo 21/11/2012, 16:35
Avatar de Adbane  
Fecha de Ingreso: junio-2011
Mensajes: 86
Antigüedad: 12 años, 9 meses
Puntos: 6
Pregunta Llamar a todos los divs menos a otros

Hola a todos, tengo una duda que me gustaría solucionar.

En HTML, tengo varios divs que comparten el mismo class, y luego algunos tienen un segundo class que solo tienen algunos, esto lo hago nombrando las dos clases juntas. Algo así:

Código HTML:
Ver original
  1. <div class="class1 class2"></div>

Todos tienen "class1", mientras que solo algunos tienen "class2". Ahora es cuando entra mi duda.

Mediante jQuery, selecciono estos divs para buscar en él elementos que contienen y luego modificarlos. Esta función solo debe afectarle al .class1 y el .class2 quedar intacto.

Mi código es así:

Código Javascript:
Ver original
  1. $('.class1').each(function(){
  2.      //Aqui mi funcion
  3. });

La idea viene a ser algo así como ".class1 -class2" (Ya sé que así es imposible xD). ¿Algún modo de seleccionar a todos los .class1 menos a los que tengan .class2?

Gracias de antemano:)
__________________
Diseñador web por amor al arte, o al HTML mejor dicho
  #2 (permalink)  
Antiguo 21/11/2012, 17:14
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 187
Respuesta: Llamar a todos los divs menos a otros

Una opción es:
Código Javascript:
Ver original
  1. $('.class1').not('.class2').each(function(){
  2.          //Aqui mi funcion
  3.     });

Otra sería:
Código Javascript:
Ver original
  1. $('.class1:not(.class2)').each(function(){
  2.          //Aqui mi funcion
  3.     });

De acuerdo con jsperf, es mejor usar la última, es más performante.

Referencia: http://jsperf.com/jquery-not-selector-vs-not-function/2

Última edición por ryugen; 21/11/2012 a las 17:18 Razón: Completar y mejorar la respuesta
  #3 (permalink)  
Antiguo 21/11/2012, 17:29
Avatar de Adbane  
Fecha de Ingreso: junio-2011
Mensajes: 86
Antigüedad: 12 años, 9 meses
Puntos: 6
De acuerdo Respuesta: Llamar a todos los divs menos a otros

Cita:
Iniciado por ryugen Ver Mensaje
Una opción es:
Código Javascript:
Ver original
  1. $('.class1').not('.class2').each(function(){
  2.          //Aqui mi funcion
  3.     });

Otra sería:
Código Javascript:
Ver original
  1. $('.class1:not(.class2)').each(function(){
  2.          //Aqui mi funcion
  3.     });

De acuerdo con jsperf, es mejor usar la última, es más performante.

Referencia: http://jsperf.com/jquery-not-selector-vs-not-function/2
Muchas gracias, también por el enlace, desconocia esta función y viene bien para echarle un ojo.

De nuevo, ¡gracias! :D
__________________
Diseñador web por amor al arte, o al HTML mejor dicho

Etiquetas: divs, funcion, html, jquery, menos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:12.