Ответ 1
Используйте контекстный параметр
$("#testdiv",parent.document)
Но если вы действительно используете всплывающее окно, вам нужно открыть открыватель вместо parent
$("#testdiv",opener.document)
Есть ли способ выбрать DIV в родительском окне с помощью jQuery?
Например:
Основная страница содержит это,
<div id="testdiv"></div>
На всплывающей странице есть форма с некоторыми опциями и кнопка "Применить". Когда пользователь нажимает, он влияет на атрибут стиля на главной странице.
Что-то по логике,
parent.$("#testdiv").attr("style", content from form);
Используйте контекстный параметр
$("#testdiv",parent.document)
Но если вы действительно используете всплывающее окно, вам нужно открыть открыватель вместо parent
$("#testdiv",opener.document)
Я искал решение этой проблемы и наткнулся на эту страницу. Я реализовал вышеупомянутое решение:
$("#testdiv",opener.document) //doesn't work
Но это не сработает. Возможно, он работал в предыдущих версиях jQuery, но теперь он не работает.
Я нашел это рабочее решение на другой странице stackoverflow: как получить доступ к объекту родительского окна с помощью jquery?
Из чего я получил это рабочее решение:
window.opener.$("#testdiv") //This works.
Вы также можете использовать
parent.jQuery("#testdiv").attr("style", content from form);
Я столкнулся с одной и той же проблемой, но, как указано выше, принятое решение не сработало для меня.
Если вы находитесь внутри фрейма или элемента iframe, альтернативным решением является использование
window.parent.$('#testdiv');
Вот краткое объяснение различий между window.opener, window.parent и window.top:
почему бы не быть уверенным?
if(opener.document){
$("#testdiv",opener.document).doStuff();
}else{
$("#testdiv",window.opener).doStuff();
}