我有一个 HTML 页面,上面有几个框架。其中一个框架(称为主框架)包含多个输入。
当我使用这个时:
Main.document.getElementsByTagName('input')
效果很好。但后来我尝试在 jQuery 中做同样的事情:
$("input",Main)
$("input",Main.document)
$("input",window.Main)
$("input",window.Main.document)
它们都返回 null。我做错了什么?
更新
$(Main)
也返回 null。
更新 jQuery 包含在主框架内。
在基页我有这一行:
<script>$=Main.$;</script>
最佳答案
jQuery 无法为选择器返回 null
。您很可能添加了错误的库,例如 Mootools。您必须在主窗口中包含 jQuery。如果$
被覆盖,您仍然可以使用jQuery
而不是$
来使用jQuery方法。
当您确定已包含 jQuery 后,请使用 frames.Main
或 frames["main"]
以获得可读的代码。当您定义名为 Main 的变量时,Main
将不会指向框架。
当框架也包含 jQuery 时,建议不要使用主框架的 jQuery,因为每个窗口的某些设置都不同。使用:
frames["main"].$("input"); //Use the jQuery method of the frame.
关于jQuery 看不到上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7978764/