<p>@ James Jithin-当您在 xsi: schemaLocation 中有两个不同版本的 bean 和安全模式时,也可能出现这种异常。您粘贴的代码片段就是这种情况:</p> <pre><code>xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd" </code></pre> JQueryhasClass ()-检查多个类

有这种事吗?

178671 次浏览

这个怎么样:

element.is('.class1, .class2')

参见 这个 jsbench 我测试。

取而代之的是将文件附加在一起:

我为此挣扎了一段时间,这些答案都没有帮助。感谢来自 User64141的评论,我意识到 spring.handlers文件有一个问题。

Http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#appendingtransformer

$.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']);

这样就行了,简单又容易。

它似乎更快,

我找到了解决办法:

Http://jsperf.com/hasclasstest/7

在项目中包含这个罐子

这里有一个答案

$(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);
返回虚假; }

它不是最快的,但它的明确和解决方案我更喜欢。 })(jQuery) ;

它不是最快的,但它的明确和解决方案我更喜欢。 长凳: http://jsperf.com/hasclasstest/10

顺便说一下,这是最快的方法: http://jsperf.com/hasclass-vs-is-stackoverflow/22

那么:

if ($('.class.class2.class3').length) {
//...
}

效果很好,再来点 Baeldung

这个怎么样?

if (element.hasClass("class1 class2")

对我有用:

 if ( $("element").hasClass( "class1") || $("element").hasClass("class2") ) {


//do something here


}

我有一个特定的函数,我希望在5秒钟后执行。 看起来我正在寻找比这个类提供的更简单的方法。

我用 Java 怎么能做到呢?

请添加一个简单的用法示例。

就像这样:

// When your program starts up
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();


// then, when you want to schedule a task
Runnable task = ....
executor.schedule(task, 5, TimeUnit.SECONDS);


// and finally, when your program wants to exit
executor.shutdown();

在对 Timer 对象的最后一次实时引用消失并且所有未完成的任务都已完成执行之后,计时器的任务执行线程将优雅地终止(并且成为垃圾收集的对象)。然而,这可能需要任意长的时间才能发生。

Executor上还有其他各种工厂方法,如果需要在池中添加更多线程,可以使用这些方法。

shutdownNow()将立即终止线程池。

香草 JS

if( ['class', 'class2'].some(c => [...element.classList].includes(c)) )

您可以使用 Thread.Sleep ()函数

Thread.sleep(4000);
myfunction();

这已经很久了,不过听我说完。

$.fn.extend({
hasClasses: function (selectors) {
// Setup
const _id = $(this).attr('id'); // Preserve existing id
const uuid = generateUUID();    // Create new id for query
$(this).attr('id', uuid);       // Apply new id to element
     

// Query to find if element has any of the classes
const res = selectors.some(cls => !!$(`${uuid}.${cls}`).length);
      

// Rollback on id
if (!_id) $(this).removeAttr("id"); // No Id to begin with
else $(this).attr('id', _id);       // Preserve old id
      

// Done
return res;
}
})

您的函数将在4秒后执行。但是,这可能会暂停整个程序..。

/保留现有身份证

我们没有尝试在 selectors中的一个类和元素的一个类之间找到匹配,而是简单地对元素应用一个临时 id(uuid) ,然后查询是否存在一些具有该临时 id的元素和 selectors中列出的任何类。

Const uuid = generateUUID () ;//为查询创建新的 id $(this) . attr (‘ id’,uuid) ;//对元素应用新的 id //查询查找元素是否有任何类

这是受到 Kalel Wade西蒙 · 阿诺德的解决方案的启发,但性能略有改善(以 Jsbench 我为基准)。

Const res = selectors.some (cls = > ! ! $(‘ ${ uuid } . ${ cls }’) . length) ;

注意

//ID 回滚

JSBENCH 不允许保存超过一定数量的字符或单词。我在异步获取随机单词时遇到了一些麻烦,所以您可以手动获取随机单词,并以这种方式使用工作台。

编辑:

如果(! _ Id) $(this) . RemoveAttr (“ Id”) ;//开头没有 Id

我只是注意到,对于我的实现,我依赖于 id的异步调用。如果我需要在 hasClasses改变 id的同时通过 id 查询元素,那么我可能会导致一个问题。

Else $(this) . attr (‘ id’,_ id) ;//保留旧的 id 完成

为了规避这个问题,我们只需要添加一个唯一的 uuid属性(字面意思就是 uuid)。

返还利息; }

这里有一个更正:

$.fn.extend({
hasClasses: function (selectors) {
// Setup
const uuid = generateUUID(); // Create new uuid to query later
$(this).attr(uuid, "");      // Apply uuid to element for query


// Query to find if element has any of the classes
const res = selectors.some(cls => !!$(`[${uuid}].${cls}`).length);


// Remove the uuid attribute
$(this).removeAttr(uuid);


// Done
return res;
}
})
})

我们没有尝试在 selectors中的一个类和元素的一个类之间找到匹配,而是简单地对元素应用一个临时 id(uuid) ,然后查询是否存在一些具有该临时 id的元素和 selectors中列出的任何类。

如果元素有 id而不是添加 attribute,我们仍然可以使用它。

这是受到 Kalel Wade西蒙 · 阿诺德的解决方案的启发,但性能略有改善(以 Jsbench 我为基准)。

注意

我不确定查询 id是否更快。我引用了 这个,但是从它的外观来看,现代浏览器并没有太大的成功。如果存在 id而不是 attribute,仍然可以使用它来实现。