返回HTML类名的第一部分

时间:2013-01-07 18:46:19

标签: jquery

我有许多表行,每行都分配了几个类。其中一个类将是 IndexN ,其中 N 是一个从0到5左右的数字。

获取给定行的 N 值的最简单方法是什么。

我知道我可以使用hasClass(),但这需要为 N 的所有可能值调用它。我还假设我可以简单地获得class属性的值,但这也将包括其他类。

有更好的方法吗?

4 个答案:

答案 0 :(得分:4)

$('tr[class*=index]').each(function(){
  var cn = /\bindex(\d+)\b/.exec($(this).attr('class'));
  console.log(cn[1]);
});

console.log输出为1,2,3,4

不需要首先列出索引[x]。它可以是类字符串

中的任何位置

答案 1 :(得分:3)

您可以做的是将className与正则表达式匹配。但它不是很优雅:

$("tr").each(function() {
  // surround with spaces so that each class name can be matched with spaces
  var match = / index(\d+) /g.exec(" " + this.className + " ");
  var index = match[1];
});

className是一个以空格分隔的字符串,该元素包含:

"foo"
"foo bar"

通过用空格包围,它们变成:

" foo "
" foo bar "

请注意,对于周围的空格,每个类名都可以与" foo "匹配,并且结果正确。

答案 2 :(得分:1)

使用匹配“包含”特定单词

*=

$('tr[class*=index]')

并检索Number([0] if index是第一个类!):

var classIndex = this.className.split(' ')[0].split('index')[1];

http://jsbin.com/awacet/1/edit

或者,如果您确定班级中没有其他NUMBERS,那么它真的很简单:

 var classIndex = this.className.replace(/\D/g, '' );

如果您有<tr class="something index4 footer barbeque"></tr>这将返回4

http://jsbin.com/awacet/2/edit

答案 3 :(得分:-2)

$('.class-1')[0].className.indexOf('class-') !== -1