使用jQuery选择没有特定类父级的输入元素。

3

如何选择所有没有特定类的父级的输入框?

在这里,我只想获取没有带有 not-parent 类的父级的输入框。

$(document).ready(function(){
    $('input:text').css('color', '#FF1200'); 
});​

http://jsfiddle.net/MFtv3/

我尝试过使用filter(),但没有成功。

谢谢!


父元素是什么?它们都是div吗? - Taha Paksu
@tpaksu 你好。是的,所有元素都有一个div父级。但是有一个特定类别的div,我不想选择它的任何“input:text”子元素。谢谢! - 1252748
1个回答

14

如果您的输入都包含在div中;

如果您想要从顶级到底级进行父级检查:

$("div:not(.not-parent) input").css('color', '#FF1200');

或者,如果您只想要一个层级的父级检查:

$("div:not(.not-parent) > input").css('color', '#FF1200');

编辑:如果它的祖先是同一类型但没有class,请使用以下代码:

$('input').filter(function(){
    return !$(this).parents('div').hasClass('not-parent');
}).css('color', '#FF1200');

该选择器不够具体,它会检查祖先元素。 - Alnitak
你只需要一级检查吗? - Taha Paksu
虽然问题并没有明确说明,但似乎 $("div.parent input").css('color', '#FF1200'); 是最简单的解决方案... - Mark Pieszak - Trilon.io
@tpaksu 我该如何修改代码,使其适用于祖先节点..? http://jsfiddle.net/MFtv3/2/ 谢谢 - 1252748
@thomas,由于输入本身有点模糊,并且看起来你想要使用文本框,所以请使用input[type="text"],因为它使用CSS选择器(并且速度更快)而不是已弃用的:text - Mark Pieszak - Trilon.io
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接