jQuery获取特定的类名

Pin*_*kie 19 javascript jquery class

我有一个没有特定顺序的几个班级的div.

<div class="whatever styledark myclass"></div>
Run Code Online (Sandbox Code Playgroud)

我对Styledark类感兴趣.这可以是styledark,stylewhite,stylered ....我想得到这个类名,无论字样式后面是什么颜色.问题是,当我点击div时,我如何提醒这个类名称以单词样式开头而忽略div中的其他类.这些课程没有特定的顺序.

Hus*_*ein 17

这是一个很好的问题.虽然可以使用这里提到的许多答案来完成,但这有点尴尬和昂贵的性能明智.我建议你这样做的方法是将样式类放在最后,这样只需要一行代码就可以输出你所追求的类名.

$('element').attr('class').split(' ').pop();
Run Code Online (Sandbox Code Playgroud)

  • 听起来像是"把风格类放在最后"这样的惯例听起来很讨厌.个人而言我更喜欢一种解决问题的更加防弹的方式+我不认为这种"代码行"在某种程度上更有效率比其他答案(它仍然使用CSS选择器仍然访问"类"属性). (2认同)

jAn*_*ndy 5

$('div').click(function() {
    var style = this.className.split(/\s/).filter(function( cn ) {
        return cn.indexOf('style') === 0;
    });

    alert(style);
});
Run Code Online (Sandbox Code Playgroud)

请注意,此代码使用Array.prototype.filter.indexof(),这在旧的浏览器中不可用.为了使它更通用,它看起来像:

$('div').click(function() {
    var name = '';

    $.each(this.className.split(/\s/), function( _, cn ) {
        if( cn.indexOf('style') === 0 ) { name = cn; return false; }
    });

    alert(name);
});
Run Code Online (Sandbox Code Playgroud)