2

それぞれにいくつかのクラスが割り当てられているテーブル行がいくつかあります。そして、それらのクラスの1つはIndexNになります。ここで、Nは0から5程度の数値です。

特定の行のNの値を取得する最も簡単な方法は何ですか。

私は使用できることを知っていますが、それはNhasClass()のすべての可能な値に対してそれを呼び出す必要があります。また、属性の値を簡単に取得できると思いますが、これには他のクラスも含まれます。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

または、クラスに他のNUMBERがないことが確実な場合は、それ以外に、本当に単純です。

 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 に答える