3

如果您要通过某个可能由用户附加的 [tag] 系统标记元素,并且您想计算标签的数量(由元素具有的类数定义),您将如何完成此操作?

如果您尝试按标签数量查看所有元素,这可能会有所帮助。(这可能可以通过其他结构来完成,但如果您只以这种方式引用元素标签)

Jquery 有 .hasClass(),有没有类似 .classCount() 的东西

4

3 回答 3

5

你可以创建它...

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

js小提琴

如果你没有 jQuery,你可以使用...

var classLength = element.classList.length;

js小提琴

如果您没有 jQuery并且必须支持较旧的浏览器,请使用...

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

js小提琴

于 2012-11-08T03:53:03.057 回答
1

如果您使用的是 HTML5,则可以使用classList 属性。例如

$("#someElementId").classList.length 

将返回 2:

<div id="someElementId" class="stinky cheese"></div>

http://jsfiddle.net/thegreatmichael/rpdEr/

于 2012-11-08T04:07:46.910 回答
0
$(element).attr('class').split(/\s+/).length

jsFiddle 示例

于 2012-11-08T03:53:59.937 回答