В чем разница между селектором документов и селектором окон?
У меня есть следующая функция JQuery, которая принимает пользовательский ввод и отображает его на экране. Когда я выбираю для $(document)
и $(window)
, функция работает. В чем недостаток использования селектора? Где я могу узнать больше об этих селекторах и их различиях?
Спасибо заранее.
$(document).keypress(function(e) {
if(e.keyCode == 13) {
var id = $("input#example").val()
console.log(id);
$('#data').append(id);
}
});
Ответы
Ответ 1
При использовании объекта window
или document
в jQuery dom selector большую часть времени вы не заметите разницу между ними.
Однако важно отметить, что они не являются одним и тем же объектом.
window
- относится к окну просмотра. Он используется в качестве основного глобального объекта в JavaScript.
document
- прямой потомок window
; относится к корню дерева документов.
Все элементы DOM являются потомками document
, который является прямым потомком window
.
Ответ 2
Селектор $(window)
предназначен для выбора области просмотра
Селектор $(document)
предназначен для всего документа (то есть внутри тега <html>
, даже если он выходит за пределы области просмотра).
Ответ 3
Чтобы ответить на этот вопрос, позвольте мне начать с определения DOM, что мы обычно знаем как "document
".
Объектная модель документа (DOM) - это интерфейс прикладного программирования (API) для корректного HTML и хорошо сформированных XML-документов. Он определяет логическую структуру документов и способ доступа и обработки document
. В спецификации DOM термин "документ" используется в широком смысле.
Теперь позвольте мне немного рассказать о том, что я нашел о browsing context
s, так как это отношение, которое обычно имеют a document
и a Window
, хотя важно отметить, что может существовать a document
без browsing context
, но вы никогда не должны видеть это с помощью jquery.
Пользователь взаимодействует с основным видом document
. Вид определяется как носитель, который используется для представления document
пользовательскому агенту, например. экран, печать, речь. Основное представление - это представление по умолчанию и представлено объектом AbstractView
, реализующим интерфейс Window
.
И чтобы это было действительно просто, Window
- это контейнер, а document
- это содержимое. Но я рекомендую, по крайней мере, ознакомиться с документацией, чтобы лучше понять.
Источники:
Ответ 4
Код, включенный внутри $( document ).ready()
, запускается только после того, как страница Document Object Model (DOM) готова для выполнения кода JavaScript.
Код, включенный внутри $( window ).on( "load", function() { ... })
, будет запускаться после того, как будет готова вся страница (изображения или фреймы), а не только DOM.
Пройдите эту ссылку для дальнейшего понимания.