jQuery看不到上下文

时间:2011-11-02 10:21:38

标签: jquery

我的HTML页面上有几个框架。其中一个帧(称为Main)包含几个INPUT。

当我使用它时:

Main.document.getElementsByTagName('input')

工作正常。但后来我尝试在jQuery中做同样的事情:

$("input",Main)
$("input",Main.document)
$("input",window.Main)
$("input",window.Main.document)

所有这些都返回null。我做错了什么?

更新 $(Main)也返回null。

更新 jQuery包含在主框架内。

在基页我有那一行:

<script>$=Main.$;</script>

2 个答案:

答案 0 :(得分:3)

jQuery无法为选择器返回null。您很可能包含了错误的库,例如Mootools。您必须在主窗口中包含jQuery。如果$被覆盖,您仍然可以使用jQuery代替$来使用jQuery方法。

如果您确定已包含jQuery,请使用frames.Mainframes["main"]来获取可读代码。定义名为Main的变量时,Main不会指向框架。

当框架也包含jQuery时,建议不要使用main的jQuery框架,因为每个窗口的某些设置不同。使用:

frames["main"].$("input"); //Use the jQuery method of the frame.

答案 1 :(得分:0)

$(document).ready(function() {
    $('#frame-id').contents().find('input');
});

确保您的iframe目前已准备就绪。