通过id获取iframe

时间:2012-09-14 15:16:22

标签: jquery iframe

我对以下代码感到困惑:

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")

没有变化。

2 个答案:

答案 0 :(得分:1)

这实际上是一个jQuery问题(我假设$是jQuery对象)。

jQuery返回一个对象数组 - 其中window.frames是Window对象的映射。

答案 1 :(得分:0)

第一个不是DOM对象,而是jQuery one。它允许您访问DOM对象(或DOM对象的集合),以及读取或修改其状态的方法,但也不提供DOM对象的所有方法。

这通常称为jQuery包装对象。

如果你需要从jQuery中获取DOM对象,可以使用

var obj = $obj.get(0);