2012-02-05 17 views
7

tengo varios divs dinámicamente creados, con los mismos elementos en el interior:elementos de Acceso de la ventana primaria de marco flotante (jquery)

<div id="(dinamic_id_1)"> 
    <div class="(element_1)">Some text here</div> 
    <input class="(element_2)" /> 
    <iframe class="(element_3)" src="form.php?id=(dinamic_id_1)" /> 
</div> 

<div id="(dinamic_id_2)"> 
    <div class="(element_1)">Some text here</div> 
    <input class="(element_2)" /> 
    <iframe class="(element_3)" src="form.php?id=(dinamic_id_2)" /> 
</div> 

... 

Y hay una forma dentro del marco flotante que sería algo como esto:

<form id="(dinamic_id)" > 
    <input class="(class_input)" /> 
</form> 

Y mi función de jQuery:

$(".class_input").change(function() { 
    $(this).closest("form").submit(); 
}); 

Hay otras acciones que quiero Execut e en submit en la ventana padre, en los elementos contenidos en el div que comparte el mismo ID que el formulario. Tengo que conseguir el código HTML dentro del div padres así:

var parent_div = $("div#"+$(this).closest("form").attr("id"), parent.document); 
alert($(parent_div).html()); 

Pero no puedo llegar a los elementos dentro del div, por ejemplo:

var parent_div = $("div#"+$(this).closest("form").attr("id"), parent.document); 
alert($(parent_div+" .element_1").html()); 

o

var parent_div = $("div#"+$(this).closest("form").attr("id")+" .element_1", parent.document); 
alert($(parent_div).html()); 

Devuelve null en lugar de "Some text here".

+0

¿Depuró usted el mensaje de error? Usted no tiene los derechos a esto. – jerone

Respuesta

2

intente modificar el código a la siguiente:

var parent_div = $("div#"+$(this).closest("form").attr("id"), parent.document); 
alert(parent_div.children('.element_1').text()); 

Toqué una prueba rápida de mi fin y funcionó bien.

Editar: Explicación

El problema es que estuviera tratando de hacer referencia a parent_div como una cadena, cuando en realidad se trata de un objeto jQuery por sí mismo.

alert($(parent_div + " .element_1").html()); 
//  ([object] + [string] ) 
+0

¡Qué tonto, eso fue todo, gracias! – Sandra

Cuestiones relacionadas