Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择带有类的div,除非它有另一个类的祖先_Jquery - Fatal编程技术网

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
。?如果过滤后需要元素集合,您可以始终将它们存储在变量中吗?我会把它加到我的答案里!至于变量,您需要解释一下,因为您不能为每个元素设置一个变量,但是如果存在与某些条件匹配的元素,您可以设置一个变量,等等?