Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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按特定类查找元素_Jquery_Class_Elements - Fatal编程技术网

当元素有多个类时,jquery按特定类查找元素

当元素有多个类时,jquery按特定类查找元素,jquery,class,elements,Jquery,Class,Elements,因此,我正在做一些后端团队在构建中没有经过深思熟虑的事情。这给我留下了一份充满div的文件 我所做的是从需要单击的元素回滚,获取父容器,然后在父容器中找到一个元素,该元素具有class=“alert box warn”,class=“alert box dead”等。。。本质上,我试图在每个元素上使用多个类选择器。当我试图只查找警报框时,它似乎无法正常工作。我这样假设是因为它有warn、dead、`fine等等 我怎样才能只找到警报框*或等效于通配符概念的东西?您可以像这样组合选择器 $(".a

因此,我正在做一些后端团队在构建中没有经过深思熟虑的事情。这给我留下了一份充满div的文件

我所做的是从需要单击的元素回滚,获取父容器,然后在父容器中找到一个元素,该元素具有
class=“alert box warn”
class=“alert box dead”
等。。。本质上,我试图在每个元素上使用多个类选择器。当我试图只查找
警报框时,它似乎无法正常工作。我这样假设是因为它有
warn、
dead、`fine等等


我怎样才能只找到
警报框*
或等效于通配符概念的东西?

您可以像这样组合选择器

$(".alert-box.warn, .alert-box.dead");
或者,如果需要通配符,请使用

注意:当使用上述选择器时,您最好知道元素类型或标记。知道标记可以使选择器更有效

$("div.alert-box.warn, div.alert-box.dead");
$("div[class*='alert-box']");

一个元素可以有任意数量的类名,但是,它只能有一个class属性;jQuery只读取第一个

使用您发布的代码,
$(“.alert box.warn”)
将起作用,但
$(“.alert box.dead”)
将不起作用。

您正在查找的


$('#mydiv').hasClass('foo')//返回true

您可以选择具有多个类的元素,如下所示:

$("element.firstClass.anotherClass");

只需将下一个类链接到第一个类上,没有空格(空格表示“的子类”)。

您可以发布HTML标记的示例吗?我建议使用第一个选择器而不是后一个选择器。如果您有兴趣确保元素的类“以“警报框”开头,而不仅仅是“包含”开头,您还可以用*=代替^=警告框。我刚刚发布了一个示例JSFIDLE,其中显示了类*仅第一个
class=”“
属性将被浏览器读取,更不用说jQuery了。这就是我想通过这个答案理解的要点,还不够清楚吗?我只是想澄清jQuery实际上不会看到任何进一步的
class=“”
es,因为浏览器的HTML解析器忽略了它们。不,他不是-他想根据元素所属的类来选择元素,而不是查看他所属的元素是否有类。
<div id="mydiv" class="foo bar"></div>

$('#mydiv').hasClass('foo') //returns ture
var divs = $("div[class*='alert-box']");
$("element.firstClass.anotherClass");