如何判断一个对象是否被jQuery包装。
var obj = $('div');
if(obj is a jQuery wrapped object)
{
then do something
}
我在 JavaScript 的世界里还比较新手。
提前感谢你的帮助。
如何判断一个对象是否被jQuery包装。
var obj = $('div');
if(obj is a jQuery wrapped object)
{
then do something
}
我在 JavaScript 的世界里还比较新手。
提前感谢你的帮助。
给你:
var isJQuery = obj instanceof jQuery; // or obj instanceof $;
您可以像这样进行测试:
if(obj instanceof jQuery) {
// ...
}
不过,说HTML元素被“包裹”在jQuery对象中并不完全正确,相反,jQuery对象是零个或多个HTML元素的集合。因此,如果你真的想小心,可以先测试它是否包含任何元素,如下所示:
if(obj instanceof jQuery && obj.length > 0) {
var element = obj[0];
// do something with element
}
obj.size()
现在已被弃用,因此您必须使用 obj.length
。 - Louis Amelineif (obj.jquery) {
/* Do something */
}
这是最简单的方法。检查对象的构造函数是另一个选择,但请注意它不能在全局上下文中工作(例如,在父页面和帧之间)。
如果“element”变量是数组对象或jQuery“类似数组”的对象之一,此检查可以帮助区分它们。
if (jQuery.isArray(element)) {
// plain array object: []
} else {
// jQuery wrapped object
}
我不是jQuery的用户,这还没有经过测试等等,但是
if (!(obj instanceof Element))
{
// ...
}
可能会起作用,除非jQuery在其包装中做了奇怪的事情。当然,这需要您知道obj永远不可能是非jQuery、非DOM元素,但希望这不难强制执行。
var $obj = $('div');
。这真的可以帮助你记住你正在处理什么。 - nickf