如何选择$(this)
. 这些复杂的选择器并不是我真正的强项。我已经尝试使用组合器来获得它的兄弟姐妹+
。但是把它和这个结合起来让我很困惑。$(this
当我看到 a后跟 a时,我不明白, something)
$(this, '+ input.in')
$(this)
没用,因为它似乎只选择与;相同的东西
谢谢!
如何选择$(this)
. 这些复杂的选择器并不是我真正的强项。我已经尝试使用组合器来获得它的兄弟姐妹+
。但是把它和这个结合起来让我很困惑。$(this
当我看到 a后跟 a时,我不明白, something)
$(this, '+ input.in')
$(this)
没用,因为它似乎只选择与;相同的东西
谢谢!
您可以简单地使用类似的东西:
$(this).next('input.in').children(selector)
或者
$(this).next('input.in').find(selector)
如果目标选择器不是input.in
一旦你this
担心了,你就不再真的只使用选择器了。您必须使用 jQuery API 告诉它在哪里寻找更多/不同的元素。根据具体情况,可以通过 、 或 查找兄弟.next()
姐妹.previous()
。.parent().children(selector)
该构造$(this, selector)
几乎可以肯定是一个错误,但$(selector, this)
与$(this).find(selector)
.
编辑注意下面的评论指出这.siblings(selector)
与.parent().children(selector)
.
jQuery 中的 CSS 选择器用于过滤一组元素(例如.filter()
, .not()
)或查找后代元素(例如 $('.foo') 来搜索整个文档,$('foo', data) 来搜索另一个对象,比如 AJAX 响应,或者 someElement.find('.foo') 来搜索元素的内容)。在您的情况下,您有一个元素,并且它不包含目标元素,因此无论您使用什么选择器,这些都无法看到它。
但是,您对“兄弟”一词的使用暗示了要使用的正确功能。找到所有兄弟姐妹后,您可以使用选择器过滤该列表;jQuery 让您一次性完成所有操作,因此您的示例将是$(this).siblings('input.in')