2012-11-08 99 views
2

如果您想通過某個[tag]系統標記元素(可能由用戶附加),並且您希望計算標籤數量(由元素所具有的類的數量定義),那麼您將如何完成此操作?計算一個元素有多少個類?

如果您嘗試按標籤數量檢查所有元素,這可能會有所幫助。 (這可能可以通過其他結構來完成的,但如果你只引用這樣的元素標籤)

jQuery有.hasClass(),有什麼樣.classCount()

+0

這個問題我回答會之前問,你是怎麼試試這個? – itachi

+0

試圖考慮通過類的數量來審查元素的方式(再次假設類意味着用戶反饋)。而且,儘量避免功能,但我會用一個。 –

回答

5

您可以創建它...

$.fn.classCount = function() { 
    return $.grep(this.attr("class").split(/\s+/), $.trim).length; 
}; 

jsFiddle

如果你沒有的jQuery,您可以使用...

var classLength = element.classList.length; 

jsFiddle

如果你沒有jQuery的必須支持舊的瀏覽器,去...

var classes = element.className.replace(/^\s+|\s+$/g, "").split(/\s+/); 
var classLength = classes[0].length ? classes.length : 0; 

jsFiddle

+0

請問這是什麼? $ .grep – VIDesignz

+0

@VIDesignz它會刪除空的匹配項。 – alex

+0

也許有點解釋這一點?返回$ .grep(this.attr(「class」)。split(/ \ s + /),$ .trim).length; – VIDesignz

0
$(element).attr('class').split(/\s+/).length 

jsFiddle example

+0

如果有多個空格分隔類名,這將給出錯誤的答案。有時會發生,我認爲值得爲這種情況辯護。 – alex

+0

確實,已更新.. – j08691