3

我希望我的 jQuery 插件在$(window)选择时表现不同。window如果在集合中,我该如何检查?到目前为止我的尝试:

>>> $(window) == $(window)
false
>>> $(window).is(window)
false
>>> $(window).filter(window).length
0

(顺便说一下,这些都可以正常工作document。)当然,我总是可以检查this[0],但是$('a').add(window)这种方法不能满足某些极端情况。

我也可以通过函数过滤:

>>> $(window).filter(function() { return this === window; }).length
1

但我希望有更多的“jQuery-ish”或通用方法。

4

3 回答 3

2

您可以使用index()并将其传递给window对象。-1如果window对象不是集合的一部分,或者它在集合中的从零开始的索引,它将返回:

>>> $(window).index(window) >= 0
true

>>> $("a").add(window).index(window) >= 0
true

>>> $("a").index(window) >= 0
false
于 2012-06-13T14:39:19.947 回答
1

AFAIK,只有$(window).parent()&$(document).parent()返回一个空数组。也许你可以使用类似的东西

var test = window
  //undefined
$(test).parent().length == 0 && !$(test).is(document)
  //true
test = document
  //#document
$(test).parent().length == 0 && !$(test).is(document)
  //false
于 2012-06-13T14:41:45.830 回答
1

.is($(window))作品:

         $(window).is($(window))​    //true
$('a').add(window).is($(window))   //true
于 2012-06-13T14:44:40.197 回答