2012-11-08 102 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