我对以下代码感到困惑:
HTML:
<div class="playerContainer">
<iframe id="playerFrame" name="playerFrame" frameborder="0"></iframe>
<div class="playerContainer">
Javascript:
var playerFrame1 = $("#playerFrame");
var playerFrame2 = window.frames["playerFrame"];
alert(playerFrame1); // returns [object object]
alert(playerFrame2); // returns [object Window]
我的第一个问题是为什么我们得到2个不同的输出。
当我尝试使用playerFrame1作为ID嵌入网页时,没有任何反应。但是一切都适用于playerFrame2。谁知道为什么?
谢谢。
PS:我也试过了
$('playerFrame'), $(iframe[name="playerFrame"]), document.getElementById("playerFrame")
没有变化。
答案 0 :(得分:1)
这实际上是一个jQuery问题(我假设$是jQuery对象)。
jQuery返回一个对象数组 - 其中window.frames是Window对象的映射。
答案 1 :(得分:0)
第一个不是DOM对象,而是jQuery one。它允许您访问DOM对象(或DOM对象的集合),以及读取或修改其状态的方法,但也不提供DOM对象的所有方法。
这通常称为jQuery包装对象。
如果你需要从jQuery中获取DOM对象,可以使用
var obj = $obj.get(0);