javascript - 检测 DOM 对象与 jQuery 对象

标签 javascript dom jquery

我有一个函数,我希望能够允许传入常规 javascript DOM 元素对象或 jQuery 对象。如果它还不是一个 jQuery 对象,我会把它变成一个。

有谁知道一种非常可靠的检测方法。

function functionName(elm){
   //Detect if elm is not a jquery object in condition
   if (elm) elm = $(elm);

}

一种合乎逻辑的方法是检测 DOM 元素对象的属性之一。问题是,哪种属性检测起来最可靠?

我也可以用任何一种方式使它成为一个 jquery 对象,因为 jQuery 没有类似这样的问题: $($imajQueryObjAlready);然而,这个问题的目的不仅仅是解决问题,而是找到一种检测它是 DOM 对象还是 jQuery 对象的好方法。

最佳答案

要测试 DOM 元素,您可以检查其 nodeType 属性:

if( elm.nodeType ) {
    // Was a DOM node
}

或者您可以检查 jQuery 属性:

if( elm.jquery ) {
    // Was a jQuery object
}

关于javascript - 检测 DOM 对象与 jQuery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4140015/

相关文章:

javascript - document.getElementsByName() 不是 Firefox 中的函数

javascript - 在构造函数中创建 DOM 元素、陷阱、不好的做法?

javascript - 在更新 div 的同时添加和删除类

javascript - jQuery ajax 成功响应中的调用函数工作一次但不是两次

javascript - Jquery 菜单在移动浏览器中不起作用

javascript - SharePoint TextField ClientID 更改?

java - 从 xml 文档中提取标签

jQuery 不会在单击时更改 border-right 属性

javascript - 当 iframe 名称是动态时的目标 iframe

javascript - 如何动态改变视频源,播放不同的视频