2013-03-20 35 views
-1

例如多個類名稱的HTML元素的類名稱的屬性之一:如何使用jQuery獲得具有分配

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

當我使用$(this).attr("class"),它只是返回「家當前」。 我只想得到「家」屬性。我怎樣才能做到這一點?

+3

你的問題不清楚。您是否想要確定div是否具有「家庭」類,或者您是否想要在類列表中列出第一類? – kinakuta 2013-03-20 15:29:59

+0

可能的重複:[jQuery - 僅從一個元素獲得第一個類](http://stackoverflow.com/q/3203966/1456376) – insertusernamehere 2013-03-20 15:31:18

回答

2

如果你知道類的名稱和要檢查元素是否有它,你可以使用.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 
} 
0
var allClass= $(this).attr("class"); 
var class = allClass.replace("current", ""); 

這將工作,如果你只有「當前」作爲一個附加的類

1

class屬性返回分配給元素的css類的空格分隔列表,要將其轉換爲數組,請在字符串上使用split方法,並檢索第一個使用[0]索引器,如下所示:

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

是否有一個特定的原因,您需要拉班級列表。如果你知道你正在尋找類,只是需要檢查的對象具有類的家,你可以這樣做:

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

否則,你可能只是拆分結果,並檢查是否有您需要的任何類。

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

看來你需要元素的主類。

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

記住這行可能會導致異常,如果沒有類應用,而你使用它的時間。