jQueryで要素に特定のクラス名が設定されていなければ true を返す - .notClasses

「jQuery で要素に複数のクラスが指定されているか調べる .hasClasses()」の逆バージョンです。セレクタで指定したクラスがすべて設定されていない場合に true を返し、一つでも設定されていれば false を返します。 jQuery.fn.extend({ hasClasses: function(selector) { if (typeof selecto...

jQuery で要素に複数のクラスが指定されているか調べる .hasClasses()」の逆バージョンです。セレクタで指定したクラスがすべて設定されていない場合に true を返し、一つでも設定されていれば false を返します。

jQuery.fn.extend({
 hasClasses: function(selector) {
 if (typeof selector == "string") {
 selector = /^\./.test(selector) 
 ? selector.replace(/^\./,"").split(".")
 : selector.replace(/^ | $/g,"").split(" "); 
 }
 for (var i = -1,j = 0, n = selector.length; ++i < n;) {
 if (this.hasClass(selector[i])) j++;
 }
 return n === j;
 },
 notClasses: function(selector) {
 return !this.hasClasses(selector);
 }
});

このメソッドは、.hasClasses() で調べて、結果を反転して返すだけなので、セレクタの指定方法などは、.hasClasses() の記事を参照してください。

以上です。

Published 2010-11-15
Updated 2019-06-25

「JavaScript」カテゴリの記事一覧