2013-04-24 2 views
0

Как я могу получить объект документа для Ifarme?Получить объект документа для iframe?

Я попытался это:

$(document,"#IFRM_Quest")[0] //[object Document]

и она работает.

Но я также пытался:

$("#IFRM_Quest").contents()[0], который также дает документ. //[object Document]

Так почему же

$("#IFRM_Quest").contents()[0]===$(document,"#IFRM_Quest")[0]

возвращение ложным?

это, предполагают, чтобы быть таким же объектом ...

http://i.stack.imgur.com/NHmlL.png enter image description here

ответ

2

$(document,"#IFRM_Quest")[0] не выбирает объект документа из фрейма, он просто выбирает объект документа текущего, хмм, документ ,

document - это переменная, непосредственно ссылающаяся на объект документа, а не на селектор. Ваш вызов функции эквивалентен:

$(document)[0] 

, потому что всякий раз, когда вы передаете DOM элемент в JQuery, the context is ignored:

// HANDLE: $(DOMElement) 
} else if (selector.nodeType) { 
    this.context = this[0] = selector; 
    this.length = 1; 
    return this; 
} 

На самом деле это также показано в документации функциональных signattures:

jQuery(selector [, context ])<- факультативный контекст
jQuery(element)<- нет контекста

+0

но разве это не синтаксис контекста? '$ (document," # IFRM_Quest ")' ?? –

+0

@RoyiNamir: Только если вы передаете * selector * в качестве первого аргумента, а не в элемент DOM. Если у вас уже есть ссылка на элемент DOM, jQuery выполняет (и не может) поиск этого элемента. –

+0

, так что это '$ (" # IFRM_Quest "). Contents() [0]' ЯВЛЯЮТСЯ верным объектом документа .... правильно? –

Смежные вопросы