私のページで採用している機能(およびそれらの機能のみ)を選択したカスタムモダナイザー構成を使用しています。
したがって、ページの_<html>
_のclassNameを単純に取得して、_no-
_接頭辞付きクラスがいくつあるかを確認できるようにします(多分classlist.match(/no-/g).length
)を確認し、私のJavaScriptがただあきらめるべきかどうかを決定します。
使うべきかどうかわからない
_document.getElementsByTagName('html').className
_
または
_$('html').attr('class')
_
または
_document.documentElement.className
_
私は行きます:
document.documentElement.className;
関数の呼び出しを含まないため、jqueryのような追加のレイヤーもありません。理想的にはこれが最もクリーンで最速です。
jQuery hasClass
`メソッドを使用できます:
一致した要素のいずれかに特定のクラスが割り当てられているかどうかを確認します。
if ( $('html').hasClass('no-something')) {
// do something here
}
プレーンJSを使用する場合、同等のものは次のようになります。
document.getElementsByTagName('html')[0].className
プロジェクトでjqueryを使用している場合、なぜこれを使用しないのか:
var classList = $("html").attr('class').split(/\s+/);
var prefix = 'no-';
$.each( classList, function(index, item){
if (item.substring(0, 2) === prefix) {
//do something
}
});
?
var allClasses = [];
var allElements = document.querySelectorAll('*');
for (var i = 0; i < allElements.length; i++) {
if (allElements[i].hasAttribute("class")) {
var classes = allElements[i].className.toString().split(/\s+/);
for (var j = 0; j < classes.length; j++) {
var cls = classes[j];
if (cls && allClasses.indexOf(cls) === -1)
allClasses.Push(cls);
}
}
}
console.log(allClasses);