1

クラス名の配列の最後の項目を取得したい。私のコードは次のようになります

var getClassName = [];
getClassName = $(this).attr('class').split();
console.log(getClassName);

コンソールで私この答えを得る

["classname1 classname2"]

最後のクラス名を取得するにはどうすればよいですか?

ありがとう

4

4 に答える 4

4
console.log(getClassName[getClassName.length-1]);

しますが、に引数を渡す必要がありますsplit():

var getClassName = $(this).attr('class').split(' ');
var lastIndex = getClassName.length - 1;
console.log(getClassName[lastIndex]);

編集:this.className使用時の代わりに使用することを
検討してください。これは他の回答で言及されています。this.className$(this).attr('class')

Andy Eは、私たちが jQuery を過剰に使用する傾向があることについて、優れた記事を書いています。この記事では特に の使用を扱っています.attr("id")が、問題は$(...).attr('className')vs.についても同じですthis.className

あなたも使うことができます

var getClassName = (this.className || '').split(' ');

それが存在するかどうかわからない.className場合。

于 2010-11-22T09:35:42.140 に答える
2
$(this).attr('class').split(' ').pop()
于 2010-11-22T09:52:34.893 に答える
2

jensgram が指摘しているように、もうすぐそこです。jQuery固有のままにしたい場合は、詳細について彼の回答を参照してください。

しかし、ブラウザーに多くの余分な作業をさせています。これは、jQuery を本当に必要としない場合の 1 つです。

var getClassName;
getClassName = this.className.split(' ');
console.log(getClassName[getClassName.length-1]);

DOM 要素のclassNameプロパティは、すべての主要なブラウザー (およびおそらくすべてのマイナーなブラウザー) でサポートされています。

それでも、これをタイトなループで実行している場合を除き、$()andattr呼び出しの余分なオーバーヘッドはおそらくそれほど重要ではありません。

于 2010-11-22T09:39:01.043 に答える
1

分割のドキュメントに注意してください。

http://www.w3schools.com/jsref/jsref_split.asp

あなたは書く必要があります:

split(' ')

セパレーターがないと、「文字列全体が返されます」

于 2010-11-22T09:36:20.537 に答える