我希望我的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'或通用方法。
答案 0 :(得分:2)
您可以使用index()并将window
对象传递给它。如果-1
对象不是集合的一部分,则返回window
,否则返回集合中从零开始的索引:
>>> $(window).index(window) >= 0
true
>>> $("a").add(window).index(window) >= 0
true
>>> $("a").index(window) >= 0
false
答案 1 :(得分: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
答案 2 :(得分:1)
.is($(window))
有效:
$(window).is($(window)) //true
$('a').add(window).is($(window)) //true