jquery - 如何知道你是否有 jQuery 对象

标签 jquery

确实有两个问题...

首先,在编写采用对象参数的 jQuery 函数时,哪种编码风格更好,函数应该采用 jQuery 对象,还是传递标准 JavaScript 对象并让函数本身进行包装更好?我想我只是问这里是否有一个标准,因为对于想要调用该函数的人来说,它可能并不总是显而易见的。

其次,如何测试一个对象是否是 jQuery 对象?理想情况下,如果该函数可以采用其中任何一个,那就太好了,所以...

function(obj) {
    var $obj;
    if (isJQuery(obj)) {
        $obj = obj;
    }
    else {
        $obj = $(obj);
    }
    // ....
}

或者您甚至需要这样做吗?如果对象已经是一个 jQuery 对象,$(obj) 会简单地返回,所以你总是可以尝试换行,这并不重要?

最佳答案

您可以测试.jquery property (这是 jQuery 对象的原型(prototype)),如下所示:

function(obj) {
  var $obj = obj.jquery ? obj : $(obj);
}

这就是 jQuery core does internally as well .

<小时/>

更新: My ticket filed as a result of this question已完成,您现在可以找到 the .jquery property in the official API documentation .

<小时/>

编辑:为@ T.J.在评论中指出这目前在 the official API 中,但是it's been around since jQuery 1.0而且我很确定它不会有任何进展。 尽管如此,根据评论讨论(感谢 T.J.),我提交了一份增强票,希望将其添加到 API 文档中,您可以在此处跟踪其进度: http://bugs.jquery.com/ticket/7200

关于jquery - 如何知道你是否有 jQuery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941621/

相关文章:

jquery - 在现有表中插入行

javascript - 如何获取多个文本框值?

javascript - 从 .find() 编辑文档数组中的文档

javascript - 使用新 API 刷新多个数据表

jquery - 如何获取当前paner-body下的复选框data-id

jquery - 与YouTube一起嵌入的媒体无法正常工作-错误:不支持 “type”的指定 “video/youtube”属性

javascript - 使用 Javascript 从明文 API 获取值

javascript - 检查元素是否显示 : block, 不工作

javascript - 2 列布局的高度相等,但每行的高度不同

javascript - 如何在按钮单击事件中将两个源数据加载到数据表中