次のような正規表現を使用して、クラス名全体を引き出すことができます。
$('[class$="blue"]').each(function() {
var clsName = this.className.match(/\w*blue\w*/)[0];
});
認識すべきことの 1 つは、$('[class$="blue"]')
という名前の属性全体を操作することですclass
。私は個々のクラス名を操作しません。したがって、一致します:
class="happy text_blue"
しかし、それは一致しません:
class="text_blue happy"
class 属性が で終わっていないため"blue"
です。"blue"
クラス名属性のどこに配置されているかに関係なく、を含むクラス名を取得する場合は、次を使用する必要があります。
$('[class*="blue"]').each(function() {
var clsName = this.className.match(/\w*blue\w*/)[0];
});
青で終わっていないクラス名をさらに除外したい場合は、次のように JS を使用してそれを行うことができます。
$('[class*="blue"]').each(function() {
var match = this.className.match(/\w*blue(\b|$)/);
if (match) {
var clsName = match[0];
}
});
オブジェクトからこれらのクラス名を削除したい場合は、次のように実行できます。
$('[class*="blue"]').each(function() {
var match = this.className.match(/\w*blue(\b|$)/);
if (match) {
$(this).removeClass(match[0]);
}
});
少しきれいに見えるこの方法でも実行できますが、削除するクラス名の周りの余分な空白を完全にクリーンアップすることはできません。
$('[class*="blue"]').each(function() {
this.className = this.className.replace(/\w*blue(\b|$)/, "").replace(/\s+/g, ' ');
});