我有许多表行,每个行都分配了几个类。其中一个类将是IndexN,其中N是从 0 到 5 左右的数字。
获取给定行的N值的最简单方法是什么。
我知道我可以使用hasClass()
,但这需要为所有可能的N值调用它。我还假设我可以简单地获取class
属性的值,但这也将包括其他类。
有没有更好的办法?
我有许多表行,每个行都分配了几个类。其中一个类将是IndexN,其中N是从 0 到 5 左右的数字。
获取给定行的N值的最简单方法是什么。
我知道我可以使用hasClass()
,但这需要为所有可能的N值调用它。我还假设我可以简单地获取class
属性的值,但这也将包括其他类。
有没有更好的办法?
$('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] 不需要首先列出。它可以在类字符串中的任何位置
你可以做的是匹配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 "
请注意,使用周围的空格,可以将每个类名与正确的结果进行匹配。
使用*=
将匹配“包含”特定单词的
$('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
$('.class-1')[0].className.indexOf('class-') !== -1