父窗口中的jQuery select元素

时间:2011-05-16 13:00:12

标签: jquery jquery-selectors popup parent

有没有办法使用jQuery在父窗口中选择DIV?

例如:

主页包含此内容,

<div id="testdiv"></div>

弹出页面有一个包含一些选项和“应用”按钮的表单。当用户单击“应用”时,它会影响主页面上的样式属性。

符合逻辑的东西,

parent.$("#testdiv").attr("style", content from form);

5 个答案:

答案 0 :(得分:103)

使用context-parameter

$("#testdiv",parent.document)

但如果你真的使用弹出式窗口,则需要访问开启者而不是父级

$("#testdiv",opener.document)

答案 1 :(得分:20)

我找到了解决此问题的方法,并且遇到了本页面。我实施了上述解决方案:

$("#testdiv",opener.document) //doesn't work

但它不起作用。也许它在以前的jQuery版本中确实有效,但它现在似乎没有用。

我在另一个stackoverflow页面上找到了这个工作解决方案: how to access parent window object using jquery?

我从中得到了这个有效的解决方案:

window.opener.$("#testdiv") //This works.

答案 2 :(得分:2)

您也可以使用,

parent.jQuery("#testdiv").attr("style", content from form);

答案 3 :(得分:2)

我遇到了同样的问题但是,如上所述,接受的解决方案对我不起作用。

如果您在框架或iframe元素中,则可以使用替代解决方案

window.parent.$('#testdiv');

Here's a quick explanation of the differences between window.opener, window.parent and window.top:

  • window.opener是指调用window.open(...)打开窗口的窗口
  • window.parent是指框架或iframe元素中窗口的父级

答案 4 :(得分:0)

为什么两个都不确定?

if(opener.document){
  $("#testdiv",opener.document).doStuff();
}else{
  $("#testdiv",window.opener).doStuff();
}