2013-05-02 37 views
5

Tôi đang cố gắng sử dụng JQuery từ bên trong một số iframe đến .prependTo một .classdiv bên trong Phụ huynh.prependĐối với div cha mẹ được chỉ định gần nhất từ ​​iframe

Điều này có bội số của cùng một .class. ** CHỈNH SỬA VÀ iframe

Mọi thứ trên cùng một miền.

Vì vậy, từ bên trong tài liệu chính:

<div class="NewPHOTOS"> 
    **<!--PUT ME HERE!-->** 
    <div class="LinePhoto"> 
     <a href="images/518279f07efd5.gif" target="_blank"> 
      <img src="images/thumb_518279f07efd5.gif" width="50" height="50"> 
     </a> 
    </div> 

    <iframe class="uploadLineID_55" width="800px" height="25px" src="../../uploads/uploadiframe.php" scrolling="no" seamless></iframe> 
</div> 

Script bên trong iframe:

$(document).on("click", '#TEST', function() { 

    appendImagetoParent(); 

}); 


function appendImagetoParent() { 

var data = '<div class="LinePhoto"><a href="images/TEST.gif" target="_blank"><img src="images/thumb_TEST.gif" width="50" height="50"></a></div>'; 

$(".NewPHOTOS", window.parent.document).each(function() { $(data).prependTo($(".NewPHOTOS")); 
}); 

/* $(data).prependTo($(".NewPHOTOS", window.parent.document)); This prepends to Every .NewPHOTOS */} 

Tôi đã chạy vòng vòng và googleing hàng giờ đồng hồ bây giờ. Tôi không thể hiểu được điều này.

Tôi đang làm gì sai ở đây?

EDIT Tôi đã sử dụng, hoạt động tuyệt vời!

$(parent.document).find('.' + frameElement.className) 
         .closest('.NewPHOTOS') 
         .prepend(data); 
+2

Có nhiều khung nội tuyến bên trong div có hình ảnh lớp học trên trang không? – Dale

+1

Có thể tốt hơn để đính kèm người nghe trong trang cha mẹ cho sự kiện tải của mỗi iframe, theo cách này bạn có thể nhắm mục tiêu khung và tập luyện cha mẹ của nó ('. NewPHOTOS') – Dale

+0

Có. Cả hai đều có bội số. – Monty

Trả lời

3
$(document).on("click", '#TEST', appendImagetoParent); 

function appendImagetoParent() { 

    var div = $('<div />', {'class':'linePhoto'}), 
     a = $('<a />', {href:'images/TEST.gif', target:'_blank'}), 
     img = $('<img />', {src:'images/thumb_TEST.gif', width:'50', height:'50'}); 

    $(parent.document).find('.' + frameElement.className) 
         .closest('.NewPHOTOS') 
         .prepend(div.append(a.append(img))); 
} 

Lấy lớp của iFrame chứa với frameElement.className, và sử dụng lớp đó để tìm iFrame ngay trong tài liệu cha mẹ, sau đó tìm .NewPHOTOS yếu tố gần gũi nhất, và thêm vào trước nội dung, tạo ra trong một hơn Cách jQuery.

+0

Điều này đã làm nó ... Cảm ơn! – Monty

+0

@Monty - thats tuyệt vời, như tôi đã không chắc chắn 100% nó sẽ, và tôi đã không có cách thực sự thử nghiệm nó! – adeneo

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