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 として使用して Web ページを埋め込もうとしても、何も起こりません。しかし、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 に答える