2013-05-02 54 views
5

我試圖從一個iframe.prependTo一個.classdiv裏面的父母使用JQuery。prependTo最接近指定從一個iframe的父div

它具有相同.class的倍數。 **編輯和內聯框架

一切都在同一個域。

所以,從主文檔中:

<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> 

腳本中的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 */} 

我已經手忙腳亂,現在googleing幾個小時。我無法弄清楚這一點。

我在這裏做錯了什麼?

編輯 我用過,效果很棒!

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

在div中有多個iframe在頁面上有newphotos類嗎? – Dale 2013-05-02 15:28:28

+1

在每個iframe的加載事件的父頁面中添加一個監聽器可能會更好,這樣您可以將幀定位到其父母並且鍛鍊其父母('。NewPHOTOS') – Dale 2013-05-02 15:31:29

+0

是的。兩者都有倍數。 – Monty 2013-05-02 15:31:33

回答

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))); 
} 

獲取類包含的iFrame與frameElement.className,並使用這個類來找到合適的iFrame的父文檔中,然後找到最接近.NewPHOTOS元素,並預先準備內容,更創造jQuery的方式。

+0

這樣做了......謝謝! – Monty 2013-05-02 15:55:19

+0

@Monty - 這很好,因爲我不是100%肯定會這樣,而且我沒有真正的測試方法! – adeneo 2013-05-02 15:56:48