我有许多表行,每行都分配了几个类。其中一个类将是 IndexN ,其中 N 是一个从0到5左右的数字。
获取给定行的 N 值的最简单方法是什么。
我知道我可以使用hasClass()
,但这需要为 N 的所有可能值调用它。我还假设我可以简单地获得class
属性的值,但这也将包括其他类。
有更好的方法吗?
答案 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
答案 3 :(得分:-2)
$('.class-1')[0].className.indexOf('class-') !== -1