首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery获取特定的类名

jQuery获取特定的类名
EN

Stack Overflow用户
提问于 2011-05-24 07:08:20
回答 7查看 20.2K关注 0票数 19

我有一个div,里面有几个没有特定顺序的类。

代码语言:javascript
复制
<div class="whatever styledark myclass"></div>

我对styledark类很感兴趣。这个可以是深色的,白色的,有样式的……我想要得到这个类名,不管单词style后面是什么颜色。问题是,当我单击div时,我如何提醒这个以单词style开头的类名,而忽略div中的其他类。这些类没有特定的顺序。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-24 07:43:14

这是一个很好的问题。虽然它可以使用这里提到的许多答案来完成,但这在性能方面有点笨拙和昂贵。我建议你把style类放在最后,这样你只需要一行代码就可以输出你想要的类名。

代码语言:javascript
复制
$('element').attr('class').split(' ').pop();
票数 18
EN

Stack Overflow用户

发布于 2011-05-24 07:14:06

代码语言:javascript
复制
$('div').click(function() {
    var style = this.className.split(/\s/).filter(function( cn ) {
        return cn.indexOf('style') === 0;
    });

    alert(style);
});

注这段代码使用了Array.prototype.filter.indexof(),这在老式浏览器中是不可用的。为了使其更通用,它将如下所示:

代码语言:javascript
复制
$('div').click(function() {
    var name = '';

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

    alert(name);
});
票数 5
EN

Stack Overflow用户

发布于 2011-05-24 07:27:58

代码语言:javascript
复制
$('div').click(function(){
    var c = $(this).attr('class').split(/\s+/);
    for(var s in c)
        if(c[s].indexOf('style') == 0)
            alert(c[s]);
});

现场示例:http://jsfiddle.net/gion_13/rXkNy/1/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6104048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档