2

序言:我是意大利人,对不起我的英语不好。

所以这是一个问题:

考虑这样的 HTML 对象:

<div id="myDiv" class="c1 c2 c3 c4 c5"></div>

如何使用 jquery 从“div”元素的“class”属性中获取字符串数组?

例子:

var a = $('#myDiv').getClassArray(); //Not working,just an example

return a;  //[c1,c2,c3,c4,c5]

我以为我可以读取“类”属性然后拆分字符串,但它似乎太冗长,我想知道是否有更短更优雅的方法。

4

3 回答 3

8

您需要#id选择器并使用split()从字符串中获取数组。

现场演示

var a = $('#myDiv').attr('class').split(' ');

您可以使用for 循环的jQuery jQuery.each()遍历数组。

var a = $('#myDiv').attr('class').split(' ');

$.each(a, function(index, item){
    alert(item);
});​
于 2013-01-04T11:26:19.587 回答
3

新的标准classList属性将允许对 DOM 元素进行如此轻松的访问(例如,通过$('#myDiv')[0].classListjQuery),但它并没有被普遍实现。有关此标准的文档,请参见此处,或有关当前浏览器支持的信息,请参见此处。

在错误 7378中建议为 jQuery 提供诸如 shim 之类的功能,但被拒绝了。

但是,您可以通过 shim 获得此类支持,例如https://github.com/eligrey/classList.js

更新:带有垫片的演示位于http://jsfiddle.net/brettz9/WWs5B/1/

于 2013-01-04T11:37:03.163 回答
2

你为什么不试试这个:http: //jsfiddle.net/egZ2z/

var cls = $('#myDiv').attr('class');
var n = cls.split(' ')
alert(n);
于 2013-01-04T11:32:19.040 回答