それぞれにいくつかのクラスが割り当てられているテーブル行がいくつかあります。そして、それらのクラスの1つはIndexNになります。ここで、Nは0から5程度の数値です。
特定の行のNの値を取得する最も簡単な方法は何ですか。
私は使用できることを知っていますが、それはNhasClass()
のすべての可能な値に対してそれを呼び出す必要があります。また、属性の値を簡単に取得できると思いますが、これには他のクラスも含まれます。class
もっと良い方法はありますか?
それぞれにいくつかのクラスが割り当てられているテーブル行がいくつかあります。そして、それらのクラスの1つはIndexNになります。ここで、Nは0から5程度の数値です。
特定の行のNの値を取得する最も簡単な方法は何ですか。
私は使用できることを知っていますが、それはNhasClass()
のすべての可能な値に対してそれを呼び出す必要があります。また、属性の値を簡単に取得できると思いますが、これには他のクラスも含まれます。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
または、クラスに他のNUMBERがないことが確実な場合は、それ以外に、本当に単純です。
var classIndex = this.className.replace(/\D/g, '' );
あなたが例えば持っている場合:<tr class="something index4 footer barbeque"></tr>
これは戻ります4
$('.class-1')[0].className.indexOf('class-') !== -1