Foros del Web » Programando para Internet » Jquery »

Buscando elementos con jQuery

Estas en el tema de Buscando elementos con jQuery en el foro de Jquery en Foros del Web. Hola! Me está ocurriendo una cosa con mi código que no veo por qué ocurre...a ver si me podéis echar una mano ;) Estoy intentando ...
  #1 (permalink)  
Antiguo 18/07/2014, 04:43
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 3 meses
Puntos: 14
Pregunta Buscando elementos con jQuery

Hola!

Me está ocurriendo una cosa con mi código que no veo por qué ocurre...a ver si me podéis echar una mano ;)

Estoy intentando buscar dentro de un bloque, las etiquetas <p> que contengan a su vez <img>

Para eso estoy probando con lo siguiente:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     $(document).ready(function(){
  3.        $(".texto-pagina").each(function(){
  4.           var parrafo = $(this).find('p');
  5.           $(parrafo).each(function(){
  6.              var contieneImg = $(this).find('img');
  7.              if (contieneImg){
  8.                console.log("encuentra");
  9.             }
  10.           });
  11.          
  12.        });
  13.     });
  14. </script>

Pero el problema es que siempre me está devolviendo el find("img") true y no me serviría
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #2 (permalink)  
Antiguo 18/07/2014, 09:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Buscando elementos con jQuery

El método find devuelve a los elementos encontrados, lo cual en una condición como la que muestras también puede ser interpretado como true. Debes partir por hacerte la pregunta "¿qué deseo obtener?" para luego poder ver la forma de alcanzar la meta.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 22/07/2014, 18:55
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Buscando elementos con jQuery

No sería necesario incluir el método .length en la condición del if?

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     $(document).ready(function(){
  3.        $(".texto-pagina").each(function(){
  4.           var parrafo = $(this).find('p');
  5.           $(parrafo).each(function(){
  6.              var contieneImg = $(this).find('img');
  7.              if (contieneImg.length){
  8.                console.log("encuentra");
  9.             }
  10.           });
  11.          
  12.        });
  13.     });
  14. </script>

Si subís el código a jsFiddle sería mas fácil.

Saludos
  #4 (permalink)  
Antiguo 22/07/2014, 19:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Buscando elementos con jQuery

Estimado Cthulhu, en este caso dicha evaluación funciona igual con o sin el dato de la cantidad de elementos encontrados, por ejemplo:

Código Javascript:
Ver original
  1. var r = $("div"); //Suponiendo que haya uno o más elementos <div>
  2. console.log(r ? 'a' : 'b'); //a
  3. console.log(r.length ? 'a' : 'b'); //a

De cualquier manera, a nuestro amigo madman_18 le hace falta explicar más acerca de lo que busca hacer.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 13/08/2014, 02:32
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 12 años, 1 mes
Puntos: 38
Respuesta: Buscando elementos con jQuery

Cita:
Iniciado por madman_18 Ver Mensaje
Hola!

Me está ocurriendo una cosa con mi código que no veo por qué ocurre...a ver si me podéis echar una mano ;)

Estoy intentando buscar dentro de un bloque, las etiquetas <p> que contengan a su vez <img>
Pero el problema es que siempre me está devolviendo el find("img") true y no me serviría
Hola madman_18 yo lo haría más fácil , no hace falta iterar con each si ya haces find..

<iframe width="100%" height="300" src="http://jsfiddle.net/2x8nud0L/embedded/" frameborder="0"/>
fiddle:
http://jsfiddle.net/2x8nud0L/

Saludos!
  #6 (permalink)  
Antiguo 13/08/2014, 02:32
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 12 años, 1 mes
Puntos: 38
Respuesta: Buscando elementos con jQuery

Cita:
Iniciado por Djoaq Ver Mensaje
Hola madman_18 yo lo haría más fácil , no hace falta iterar con each si ya haces find..


fiddle:
http://jsfiddle.net/2x8nud0L/

Saludos!
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.        $(".texto-pagina").each(function(){
  3.           var parrafo = $(this).find('p').find('img');
  4.           parrafo.hide('slow');
  5.        });
  6.     });

Y ví la pregunta de alguien antes que ya no la encuentro que decía que pretendía borrar los h1 de la clase detalle que tuviese el src vacio de las imagenes ... dejo su respuesta..
Código HTML:
Ver original
  1. <div class="detalle">
  2. <h1>Esto quiero que se vea</h1>
  3. <img class="pr_image_seri sombra" src="con url">
  4. </div>
  5. <div class="detalle ">
  6. <h1>Este no quiero que se vea</h1>
  7. <img class="pr_image_seri sombra" src="">
  8. </div>
  9. <div class="detalle ">
  10. </div>
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.        $('.detalle').find('img[src=""]').prev().hide();
  3.     });

Se me ha duplicado el Post , es que intentaba embeder el iframe de jsfiddle como tu Alexis88 ! pero no lo he conseguido! :P

Disculpas!

Última edición por Djoaq; 13/08/2014 a las 03:02 Razón: se me duplicó el post!
  #7 (permalink)  
Antiguo 13/08/2014, 06:39
 
Fecha de Ingreso: agosto-2014
Mensajes: 1
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Buscando elementos con jQuery

Hola, he conseguido esto:

$(document).ready(function(){
$('.detalle').find('img[src=""]').parent().hide();
});

escondo el elemento contenedor de igm sin src.
Me has ayudado mucho. muchas gracias!

Última edición por davidrt; 13/08/2014 a las 08:23 Razón: funciona

Etiquetas: buscando, elementos
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 13:03.