2012-02-05 34 views
7

Tôi có một vài divs dinamically tạo, với các yếu tố tương tự bên:yếu tố Truy cập vào cửa sổ cha mẹ từ iframe (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> 

... 

Và có một hình thức trong iframe đó sẽ giống như thế này:

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

Và chức năng jquery của tôi:

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

có những hành động khác mà tôi muốn execut e khi gửi trên cửa sổ chính, trên các phần tử chứa trong div chia sẻ cùng một id như biểu mẫu. Tôi có để có được html trong div cha mẹ như thế này:

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

Nhưng tôi không thể có được với các yếu tố bên trong div, ví dụ:

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

hoặc

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

Trả về null thay vì "Some text here".

+0

Trình gỡ lỗi của bạn có đưa ra thông báo lỗi không? Bạn mite không có quyền này. – jerone

Trả lời

2

Cố gắng sửa đổi mã như sau:

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

tôi gõ lên một thử nghiệm nhanh cuối của tôi và tất cả hoạt động tốt.

Edit: Giải thích

Vấn đề là bạn đã cố gắng để tham khảo parent_div như là một chuỗi, trong khi thực tế nó là một đối tượng jQuery trên riêng của nó.

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

Silly me, đó là nó, cảm ơn! – Sandra

Các vấn đề liên quan