使用jQuery将iFrame定位一次

时间:2010-03-19 14:49:15

标签: jquery selector frame targeting

我有一系列框架(4),它们在页面中用于通过Ajax调用创建动态内容的加载。

在这些帧的每一个中,我都以父级元素为目标,并用各自的内容更新它们,例如

$("#loadingGrid1",top.document).show();
$("#frameSkills",top.document).hide();

在jQuery中有一种方法可以多次在父页面上定位特定元素,而只需将页面定位到一个变量中,例如:

var parentPage=$('#frameSkills',top.document);

然后使用此变量来应用$(parentPage > #loadingGrid1).hide()

等内容

希望我已经解释了我的经历。基本上,我必须在我制作的每个jQuery选择器中调用“top.document”,这似乎是浪费精力。

3 个答案:

答案 0 :(得分:0)

Jquery对象可以像DOM节点一样用作上下文。

var parentPage = $('#frameSkills',top.document);
$("#myselector", parentPage).dostuff();

或者您可以使用find功能:

parentPage.find("#myselector").dostuff();

答案 1 :(得分:0)

Delegates?

怎么样?

答案 2 :(得分:0)

这样的事情对我来说似乎最干净:

var page = $(top.document); //Define once
page.find("#loadingGrid1").show();
page.find("#frameSkills").hide();

当你打电话给$(selector, context)时(无论如何都是这样),无论如何都要调用context.find(selector) ......也可以让你随时随地阅读/写/链。 / p>