如何使用jquery获取已分配多个类名的html元素的类名属性之一

How to use jquery to get one of the class name attribute of an html element which has multiple class names assigned

本文关键字:html 属性 元素 jquery 何使用 获取 分配      更新时间:2023-09-26

例如:

<div class="home current">home</div>

当我使用$(this).attr("class")时,它只是返回"homecurrent"。我只想获得"home"属性。我怎样才能做到这一点?

如果您知道类名并想检查元素是否有它,可以使用.hasClass()

// will return true if the element has that class applied to it
$(elem).hasClass('home'); 

另一方面,如果您希望每个类分别应用于一个元素,则可以按空间拆分并迭代:

var classes = $(elem).attr('class').split(' ');
for(var i=0; i<classes.length; i++) {
   classes[i]; // each class name
}

class属性返回分配给元素的css类的以空格分隔的列表,要将其转换为数组,请使用字符串上的split方法,要检索第一个,请使用[0]索引器,如:

 var firstClass = $(this).attr('class').split(' ')[0]
var allClass= $(this).attr("class");
var class = allClass.replace("current", "");

如果您只有"current"作为一个附加类

,这将起作用

是否有特定的原因需要提取类列表。如果你知道你要找的类,只需要检查对象是否有类的主页,你可以这样做:

$(this).hasClass("home");

否则,您可以将结果拆分,然后检查您需要的任何类。

var classAttr = $(this).attr("class");
var classes = classAttr.split(" "); 

似乎需要元素的主类。

var primaryClass= $(this).attr('class').split(' ')[0].

请记住,如果没有应用类,这一行可能会导致异常,而您使用它的时间。