4

我对以下代码有点困惑:

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

没变。

4

2 回答 2

1

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

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

于 2012-09-14T15:18:51.707 回答
0

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

这通常称为 jQuery 包装对象。

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

var obj = $obj.get(0);
于 2012-09-14T15:18:02.347 回答