Tôi có một chức năng mà tôi muốn có thể cho phép truyền trong đối tượng phần tử javascript DOM thông thường hoặc đối tượng jQuery. Nếu nó chưa phải là một đối tượng jQuery thì tôi sẽ làm cho nó một.Phát hiện đối tượng DOM và đối tượng jQuery
Có ai biết một cách rất đáng tin cậy để phát hiện điều này không.
function functionName(elm){
//Detect if elm is not a jquery object in condition
if (elm) elm = $(elm);
}
Cách tiếp cận hợp lý là phát hiện một trong các thuộc tính của đối tượng phần tử DOM. Câu hỏi đặt ra là, tài sản nào là đáng tin cậy nhất để phát hiện?
Tôi cũng có thể chỉ làm cho nó trở thành một đối tượng jquery một trong hai cách vì jQuery không có vấn đề với một cái gì đó như: $ ($ imajQueryObjAlready); Tuy nhiên, mục đích của câu hỏi này không chỉ là giải quyết vấn đề, mà là tìm ra cách tốt để phát hiện nếu đối tượng DOM của nó là một đối tượng jQuery.
+1 Hai giải pháp tuyệt vời - Tôi thích giải pháp dễ đọc hơn. – lonesomeday
@lonesomeday - Từ chối trách nhiệm duy nhất tôi đưa ra (hoặc đáng lẽ phải đưa ra) là nó không phải là một phần của API công khai, [hiện tại là] (http: //bugs.jquery.com/ticket/7200), vì vậy jQuery có thể quyết định loại bỏ thuộc tính đó một ngày nào đó. Mặc dù nghi ngờ. – user113716
Đúng. Tất nhiên, ngược lại, jQuery có thể quyết định thêm thuộc tính 'nodeType'! – lonesomeday