.removeClass用于多个缓存选择器

时间:2015-12-02 11:55:32

标签: javascript jquery html css caching

通过缓存选择器来优化一些js / jQuery代码,这些选择器不止一次被用来帮助加快速度,例如:

var object = $("#object");
object.removeClass('class-name');

我遇到麻烦链接缓存选择器但是,这是我的尝试:

var object1 = $("#object1");
var object2 = $("#object2");
$(object1, object2).removeClass('class-name');

这适用于第一个缓存元素,但不适用于第二个,关于正确语法的任何想法?
我已经搜索过它但似乎找不到任何东西!

3 个答案:

答案 0 :(得分:5)

使用.add()

  

创建一个新的jQuery对象,其中元素已添加到匹配元素集中。

object1.add(object2).removeClass('class-name');

答案 1 :(得分:1)

Satpal的答案非常简单,但是如果你想要一个替代方案(处理更多的类而不是以一个巨大的jquery链结束),你可以将jquery对象保存在一个数组中并使用迭代:



"use strict";
var arr = [];
var object1 = $("#object1");
var object2 = $("#object2");
arr.push(object1, object2)
for (var e of arr) {
  e.removeClass("class-name");
}

.class-name {
  color: red;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="object1" class="class-name">this</div>
<div id="object2" class="class-name">this</div>
<div id="object3" class="class-name">this</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

将这两个选择器放在一起是您可以使用的另一个选项:

$('#object1, #object2').removeClass('class-name');