Trong thực tế jQuery là một trình bao bọc xung quanh JavaScript DOM, cả hai đều nâng cao và đơn giản hóa nó. Rất ngắn gọn JQuery selectors trở JQuery Object/s tức là
var jQueryResults = $("article"); //Contains all article elements in the DOM as JQuery objects
Tuy nhiên, việc lựa chọn các yếu tố với Javascript trả về phần tử HTML DOM tức
var normalResults = document.getElementsByTagName("article");//Contains all article elements in the DOM as HTML objects
Những vấn đề nảy sinh ở chỗ đối tượng DOM không cung cấp các chức năng tương tự mà Các đối tượng JQuery cung cấp.
Dưới đây là một ví dụ sự kiện đó cho thấy sự khác biệt:
$('.changeColorHover').hover(function() {
this.attr("style", "color:red");
}); //Will not work as we are trying to call a JQuery method on a DOM object
Với nêu trên trong tâm trí từ khóa 'này' là một đối tượng DOM và do đó bạn được yêu cầu phải chuyển nó sang một đối tượng jQuery để để sử dụng các phương thức jQuery.
$('.changeColorHover').hover(function() {
$(this).attr("style", "color:red");
}); //Will work since we have first converted the DOM object to a JQuery object
Để tổng hợp, từ khóa này, cho phép bạn truy cập đối tượng được gọi là sự kiện này sẽ tham chiếu đến đối tượng đã nêu sự kiện. Tuy nhiên, đây là một đối tượng DOM, không phải là một đối tượng jQuery. Kết quả là, bất kỳ phương thức jQuery nào bạn muốn sử dụng không có sẵn, trừ khi bạn chuyển đổi nó thành một đối tượng jQuery.
có nó, nó là một thành ngữ jquery –
@Matt: Không có jQuery trong mã. Việc gán 'this' cho biến khác cũng rất phổ biến trong" JavaScript thuần túy ". –
@Felix: Đây là một plugin, có nghĩa là điều này đề cập đến một đối tượng jquery. Có (hoặc từng là) một thành ngữ jquery cho các đối tượng jquery tiền tố với $. do đó, nó là một câu hỏi jquery. Nếu nó không phải jquery, thay vì $ này bạn có thể sẽ thấy, đó, tự, hoặc một cái gì đó mô tả nhiều hơn về những gì điều này thực sự có nghĩa là –