如何选择$(this)
兄弟的孩子。这些复杂的选择器并不是我的强项。我已经尝试使用组合器+
来获得兄弟姐妹。但是将它与此相结合让我感到困惑。当我看到$(this
后跟, something)
$(this, '+ input.in')
没用,因为它似乎只选择与$(this)
相同的内容;
谢谢!
答案 0 :(得分:4)
您可以简单地使用以下内容:
$(this).next('input.in').children(selector)
或者
$(this).next('input.in').find(selector)
如果目标选择器不是input.in
答案 1 :(得分:4)
一旦你有this
担心,你就不再只选择选择器了。您必须使用jQuery API来告诉它在哪里寻找更多/不同的元素。根据具体情况,可以通过.next()
,.previous()
或.parent().children(selector)
查找兄弟姐妹。
构造$(this, selector)
几乎肯定是错误的,但$(selector, this)
与$(this).find(selector)
相同。
编辑请注意以下评论,指出.siblings(selector)
与.parent().children(selector)
基本相同。
答案 2 :(得分:1)
要将this
用作context for the selector,您需要交换参数:$('+ input.in', this)
。此外,您忘记使用*
作为您要选择输入子项的兄弟:
$('+ * input.in', this);
(是的,这really works)。但是,使用jQuery方法导航DOM会更清楚:
$(this).next().find("input.in")
答案 3 :(得分:0)
jQuery中的CSS选择器用于过滤一组元素(例如.filter()
,.not()
)或查找后代元素(例如$('。foo')来搜索整个文档, $('foo',data)用于搜索另一个对象,如AJAX响应,或someElement.find('。foo')来搜索元素的内容)。在你的情况下,你有一个元素,它不包含目标元素,所以无论你使用什么选择器,这些都不会看到它。
但是,您在the right function to use处使用“兄弟姐妹”一词提示。找到所有兄弟姐妹后,您可以使用选择器来过滤该列表; jQuery允许您一次性完成所有操作,因此您的示例将是$(this).siblings('input.in')