jQuery多选择器与$(this)

时间:2013-07-06 19:13:48

标签: jquery jquery-selectors this getelementbyid multiple-instances

有没有办法让这项工作:

$(this, '#foo')

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

3 个答案:

答案 0 :(得分:16)

您的方法出现问题

$(this, '#foo')

以上行会在this设置为id的元素内搜索foo,这不是您想要的。


解决方案

您可以使用add()

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

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


有关所用方法的更多信息

<强> add("selector")

答案 1 :(得分:4)

您正在使用的方法存在的问题:

$(this, '#foo')

JS Fiddle demo

这是一个上下文感知选择,在this元素中搜索#foo(并且与$('#foo').find(this)相同),这在jQuery中是有效的,尽管我是想象有点无意义(假设您已经引用this(我假设,如果不是this 可能window)。

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

添加到选择中:

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

JS Fiddle demo

或(相反):

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

JS Fiddle demo

参考文献:

答案 2 :(得分:1)

您可能正在寻找的是

$('#foo', this)

它会在foo

中找到$(this) id对象