2013-05-02 2 views
5

Я пытаюсь использовать JQuery изнутри iframe в .prependTo a .classdiv внутри родителя.prependTo ближайший указанный родительский div от iframe

У этого есть кратные те же самые .class. ** EDIT И iframes

Все находится в том же домене.

Таким образом, внутри главного документа:

<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 в течение нескольких часов в настоящее время. Я не могу понять это.

Что я здесь делаю неправильно?

EDIT Я использовал, отлично работает!

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

Есть ли более одного iframe внутри div с классом newphotos на странице? – Dale

+1

Возможно, было бы лучше подключить слушателя на родительской странице для события загрузки каждого iframe, таким образом вы можете настроить таргетинг на фрейм и тренировку своих родителей («NewPHOTOS») – Dale

+0

Да. Оба имеют кратность. – Monty

ответ

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

Получить класс, содержащий плавающий фрейм с frameElement.className, и использовать этот класс, чтобы найти правильный Iframe в вышестоящем документе, а затем найти ближайший .NewPHOTOS элемент, и предварять контент, созданный в более jQuery'ish way.

+0

Это сделало это ... Спасибо! – Monty

+0

@Monty - это отлично, так как я не был на 100% уверен в этом, и у меня не было реального способа его проверить! – adeneo

Смежные вопросы