使用jQuery获取元素的类列表

JavaScript

GO飞云

2020-03-11

jQuery中是否有一种方法可以循环或将分配给元素的所有类分配给数组?

例如

<div class="Lorem ipsum dolor_spec sit amet">Hello World!</div>

我将在上面的“ dolor_spec”中寻找“特殊”类。我知道我可以使用hasClass(),但是实际的类名有时不一定是已知的。

第772篇《使用jQuery获取元素的类列表》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

5个回答
古一老丝宝儿 2020.03.11

javascript provides a classList attribute for a node element in dom. Simply using

  element.classList

will return a object of form

  DOMTokenList {0: "class1", 1: "class2", 2: "class3", length: 3, item: function, contains: function, add: function, remove: function…}

The object has functions like contains, add, remove which you can use

Mandy斯丁 2020.03.11

Might this can help you too. I have used this function to get classes of childern element..

function getClickClicked(){
    var clickedElement=null;
    var classes = null;<--- this is array
    ELEMENT.on("click",function(e){//<-- where element can div,p span, or any id also a class
        clickedElement = $(e.target);
        classes = clickedElement.attr("class").split(" ");
        for(var i = 0; i<classes.length;i++){
            console.log(classes[i]);
        }
        e.preventDefault();
    });
}

In your case you want doler_ipsum class u can do like this now calsses[2];.

逆天十三 2020.03.11

您应该尝试以下一种方法:

$("selector").prop("classList")

它返回该元素的所有当前类的数组。

飞云小哥 2020.03.11

在支持的浏览器上,您可以使用DOM元素的classList属性。

$(element)[0].classList

它是一个类似数组的对象,列出了元素具有的所有类。

如果您需要支持不支持该classList属性的旧浏览器版本,则链接的MDN页面还包含一个填充程序-尽管即使该填充程序也无法在IE 8以下的Internet Explorer版本上运行。

凯小卤蛋 2020.03.11

为什么没有人简单列出。

$(element).attr("class").split(/\s+/);

编辑:正如@MarkAmery指出的那样,您不能仅仅.split(' ')因为类名可以用任何类型的空格分隔。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android