10

有什么办法可以使这项工作:

$(this, '#foo')

我也想选择“this”元素和#bar。假设选择两个 ID,它就像 一样简单'#foo, #bar',但是当我希望这两个 ID 中的一个成为“this”时,我无法让它工作。

4

3 回答 3

18

你的方法有问题

$(this, '#foo')

上面的行将在设置为this的元素内搜索,这不是您想要的。idfoo


解决方案

您可以add()为此使用:

var $el = $(this).add('#foo')

现在$el将包含$(this)& $("#foo"),您可以在其上执行操作。


有关所用方法的更多信息

add("selector")

于 2013-07-06T19:15:21.057 回答
4

您使用的方法的问题:

$(this, '#foo')

JS 小提琴演示

这是一个上下文感知的选择,在元素this内搜索(并且#foo可能不是)) 。$('#foo').find(this)thisthis window

老实说,我并不完全确定选择器为什么会“起作用”,除非给定this节点 jQuery 简单地丢弃上下文,因为它已经“知道”this节点在哪里并且有参考。

要添加到选择:

$(this).add('#foo');

JS 小提琴演示

或者(相反):

$('#foo').add(this);

JS 小提琴演示

参考:

于 2013-07-06T19:17:52.047 回答
1

您可能还在寻找的是

$('#foo', this)

它会在foo里面找到id对象$(this)

于 2016-07-12T15:00:15.587 回答