Доступ к элементам родительского окна из iframe (jquery) - PullRequest
7 голосов
/ 05 февраля 2012

У меня есть несколько динамически созданных элементов div с одинаковыми элементами внутри:

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

...

И в iframe есть форма, которая будет выглядеть примерно так:Функция jquery:

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

Есть другие действия, которые я хочу выполнить при отправке в родительском окне, над элементами, содержащимися в div, который имеет тот же идентификатор, что и форма.Я должен получить HTML в родительском div, как это:

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

Но я не могу добраться до элементов внутри div, например:

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

или

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

Вернуть ноль вместо «Некоторый текст здесь».

1 Ответ

2 голосов
/ 05 февраля 2012

Попробуйте изменить код следующим образом:

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

Я быстро проверил свой конец, и все заработало нормально.

Редактировать: Объяснение

Проблема в том, что вы пытались ссылаться на parent_div как на строку, хотя на самом деле это сам по себе объект jQuery.

alert($(parent_div + " .element_1").html());
//     ( [object]  +    [string]  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...