Jquery 选择带有类的div,除非它有另一个类的祖先
十分钟前我问过这个问题,但我意识到我用了“父母”这个词而不是“祖先”。我正在寻找一个引用具有特定祖先的类的东西 如何选择没有特定类父级的所有输入 在这里,我只想得到没有父类的输入Jquery 选择带有类的div,除非它有另一个类的祖先,jquery,Jquery,十分钟前我问过这个问题,但我意识到我用了“父母”这个词而不是“祖先”。我正在寻找一个引用具有特定祖先的类的东西 如何选择没有特定类父级的所有输入 在这里,我只想得到没有父类的输入 $(document).ready(function() { $("div:not(.not-ancestor) > input[type='text']").css('color', '#FF1200'); }); 谢谢 您可以使用过滤器,通过使用closest()检查元素上方某个地方是否有父元
$(document).ready(function() {
$("div:not(.not-ancestor) > input[type='text']").css('color', '#FF1200');
});
谢谢 您可以使用过滤器,通过使用closest()检查元素上方某个地方是否有父元素以及您要查找的类,如下所示:
$("div > input[type='text']").filter(function() {
return !$(this).closest('.not-ancestor').length;
}).css('color', '#FF1200');
编辑
要获取元素集合以供进一步使用,请执行以下操作:
var elems = $("div > input[type='text']").filter(function() {
return !$(this).closest('.not-ancestor').length;
});
elems.css('color', 'red');
elems.each(function(idx, elem) {
$(elem).data('index', idx);
});
您可以使用过滤器,并通过使用closest()检查元素上方某个位置是否有父元素以及您正在查找的类,如下所示:
$("div > input[type='text']").filter(function() {
return !$(this).closest('.not-ancestor').length;
}).css('color', '#FF1200');
编辑
要获取元素集合以供进一步使用,请执行以下操作:
var elems = $("div > input[type='text']").filter(function() {
return !$(this).closest('.not-ancestor').length;
});
elems.css('color', 'red');
elems.each(function(idx, elem) {
$(elem).data('index', idx);
});
谢谢你!但回报有什么作用呢。如何将其更改为if语句?比如如果它没有祖先,那么就把它变成红色?你看到小提琴了吗?它基本上是一个if语句,过滤掉具有该类祖先的元素。要以另一种方式进行过滤,只需删除“return”之后的not(!)?我想除了从函数返回值之外,我不理解
return
。它返回css。但是,如果我想对满足(或不满足)过滤器的元素执行多项操作,该怎么办?例如,如果我选择的这些元素没有特定类的祖先,我想将它们更改为红色,并将一个变量pass
更改为false
。?如果过滤后需要元素集合,您可以始终将它们存储在变量中吗?我会把它加到我的答案里!至于变量,您需要解释一下,因为您不能为每个元素设置一个变量,但是如果存在与某些条件匹配的元素,您可以设置一个变量,等等?谢谢!但回报有什么作用呢。如何将其更改为if语句?比如如果它没有祖先,那么就把它变成红色?你看到小提琴了吗?它基本上是一个if语句,过滤掉具有该类祖先的元素。要以另一种方式进行过滤,只需删除“return”之后的not(!)?我想除了从函数返回值之外,我不理解return
。它返回css。但是,如果我想对满足(或不满足)过滤器的元素执行多项操作,该怎么办?例如,如果我选择的这些元素没有特定类的祖先,我想将它们更改为红色,并将一个变量pass
更改为false
。?如果过滤后需要元素集合,您可以始终将它们存储在变量中吗?我会把它加到我的答案里!至于变量,您需要解释一下,因为您不能为每个元素设置一个变量,但是如果存在与某些条件匹配的元素,您可以设置一个变量,等等?