답변:
어때요?
element.is('.class1, .class2')
.hasClass()
있었지만 솔루션은 트릭을 수행 한 것 같습니다.
$('element').is('.class1.class2')
하지 않았지만
.class1.class2
이 요소와 일치합니다 모두 수업을하지만, 그들은 일치하는 요소를 찾고 있던 중 클래스를.
element.is('.class1, .class2')
작동 하지만, 그건 35 % 느린 것보다
element.hasClass('class1') || element.hasClass('class2')
내가 무슨 말을하는지 의심한다면 jsperf.com에서 확인할 수 있습니다 .
이것이 누군가를 돕기를 바랍니다.
$.fn.extend({
hasClasses: function (selectors) {
var self = this;
for (var i in selectors) {
if ($(self).hasClass(selectors[i]))
return true;
}
return false;
}
});
$('#element').hasClasses(['class1', 'class2', 'class3']);
간단하고 쉬운 방법입니다.
다음은 구문을 따르는 답변입니다.
$(element).hasAnyOfClasses("class1","class2","class3")
(function($){
$.fn.hasAnyOfClasses = function(){
for(var i= 0, il=arguments.length; i<il; i++){
if($self.hasClass(arguments[i])) return true;
}
return false;
}
})(jQuery);
가장 빠르지는 않지만 모호하지 않은 솔루션을 선호합니다. 벤치 : http://jsperf.com/hasclasstest/10
Error: $self is not defined
var $self = $(this);
for-loop 직전에 있던
이건 어때?
$.fn.extend({
hasClasses: function( selector ) {
var classNamesRegex = new RegExp("( " + selector.replace(/ +/g,"").replace(/,/g, " | ") + " )"),
rclass = /[\n\t\r]/g,
i = 0,
l = this.length;
for ( ; i < l; i++ ) {
if ( this[i].nodeType === 1 && classNamesRegex.test((" " + this[i].className + " ").replace(rclass, " "))) {
return true;
}
}
return false;
}
});
사용하기 쉬운,
if ( $("selector").hasClasses("class1, class2, class3") ) {
//Yes It does
}
그리고 더 빠른 것 같습니다, http://jsperf.com/hasclasstest/7
이건 어떤가요:
if($('.class.class2.class3').length > 0){
//...
}
> 0
. 길이가 0이 아닌 경우 true를 리턴합니다.
기본 js match () 함수를 사용하십시오.
if( element.attr('class') !== undefined && element.attr('class').match(/class1|class2|class3|class4|class5/) ) {
console.log("match");
}
regexp에서 변수를 사용하려면 다음을 사용하십시오.
var reg = new RegExp(variable, 'g');
$(this).match(reg);
그건 그렇고, 이것은 가장 빠른 방법입니다 : http://jsperf.com/hasclass-vs-is-stackoverflow/22
이것은 나를 위해 일했다 :
$('.class1[class~="class2"]').append('something');
$('.class1.class2')
은 두 번째 클래스에 속성 선택기를 사용할 필요가 없습니다. 또한 문제는 모든 클래스가 아닌 어떤 클래스로든 요소를 선택하는 방법을 묻는 것입니다.