确实有两个问题...
首先,在编写采用对象参数的 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/