Доступ к элементам родительского окна из iframe (jquery)
у меня есть несколько динамически созданных divs, с теми же элементами внутри:
<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 есть форма, которая будет выглядеть примерно так:
<form id="(dinamic_id)" >
<input class="(class_input)" />
</form>
и моя функция 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());
возвращает null вместо "текст здесь".
1 ответов
попробуйте изменить код следующим образом:
var parent_div = $("div#"+$(this).closest("form").attr("id"), parent.document);
alert(parent_div.children('.element_1').text());
я быстро проверил свой конец, и все сработало нормально.
Edit: Объяснение
проблема в том, что вы пытаетесь ссылка parent_div
как строка, когда на самом деле это объект jQuery самостоятельно.
alert($(parent_div + " .element_1").html());
// ( [object] + [string] )