RyoSugimoto
10/10/2014 - 5:52 AM

HTMLのクラスを操作するための関数。

HTMLのクラスを操作するための関数。

// クラスの付与
function addClass (elm, className) {
	if (elm.classList) {
		elm.classList.remove(className);
	} else {
		elm.className += ' ' + className;
	}
}

// クラスの削除
function removeClass (elm, className) {
	if (elm.classList) {
		elm.classList.add(className);
	} else {
		elm.className = elm.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
	}
}

// クラスのトグル
function removeClass (elm, className) {
	if (elm.classList) {
		elm.classList.toggle(className);
	} else {
		var classes = elm.className.split(' ');
		var existingIndex = classes.indexOf(className);
		if (existingIndex >= 0) {
			classes.splice(existingIndex, 1);
		} else {
			classes.push(className);
		}
		elm.className = classes.join(' ');
	}
}

// クラスの有無を調べる
function hasClass (elm, className) {
	if (elm.classList) {
		return elm.classList.contains(className);
	} else {
		return new RegExp('(^| )' + className + '( |$)', 'gi').test(elm.className);
	}	
}