我有一个div,里面有几个没有特定顺序的类。
<div class="whatever styledark myclass"></div>
我对styledark类很感兴趣。这个可以是深色的,白色的,有样式的……我想要得到这个类名,不管单词style后面是什么颜色。问题是,当我单击div时,我如何提醒这个以单词style开头的类名,而忽略div中的其他类。这些类没有特定的顺序。
发布于 2011-05-24 07:43:14
这是一个很好的问题。虽然它可以使用这里提到的许多答案来完成,但这在性能方面有点笨拙和昂贵。我建议你把style类放在最后,这样你只需要一行代码就可以输出你想要的类名。
$('element').attr('class').split(' ').pop();
发布于 2011-05-24 07:14:06
$('div').click(function() {
var style = this.className.split(/\s/).filter(function( cn ) {
return cn.indexOf('style') === 0;
});
alert(style);
});
注这段代码使用了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);
});
发布于 2011-05-24 07:27:58
$('div').click(function(){
var c = $(this).attr('class').split(/\s+/);
for(var s in c)
if(c[s].indexOf('style') == 0)
alert(c[s]);
});
https://stackoverflow.com/questions/6104048
复制相似问题