2

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

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

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

有没有更好的办法?

4

4 回答 4

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

index[x] 不需要首先列出。它可以在类字符串中的任何位置

于 2013-01-07T19:04:04.847 回答
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 "请注意,使用周围的空格,可以将每个类名与正确的结果进行匹配。

于 2013-01-07T18:50:00.057 回答
1

使用*=将匹配“包含”特定单词的

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

并检索数字([0]如果索引是第一类!):

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

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

或者,如果您确定课程中除了那个之外没有其他数字,那么它真的很简单:

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

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

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

于 2013-01-07T18:47:54.377 回答
-2
$('.class-1')[0].className.indexOf('class-') !== -1
于 2013-01-07T18:51:37.377 回答