为了确保我做对了......
myArray.removeClass('className');
将从添加到该数组的所有对象中删除名为“className”的类,是吗?
附录:
<div id="parentEle">
<div id="ele1"></div>
<div id="ele2"></div>
</div>
#ele1 {
//CSS
}
#ele1.className {
//CSS
}
#ele2 {
//CSS
}
#ele2.className {
//CSS
}
var myArray = [];
$('div','#parentEle').each(function() {
myArray.push($(this));
});
// now to remove the class from both...
答案 0 :(得分:1)
如果您使用JQuery的选择器,这将是您的数组(JSFiddle):
var myArray = $('span');
myArray.removeClass('active');
否则,你得到:
TypeError:Object [object Array]没有方法'removeClass'
但是,使用每个(JSFiddle):
var myArray = [$('span').first(), $('span').first(), $('span').first()]; // selecting first element 3 times
$.each(myArray, function () {
this.removeClass();
});
您可以获得预期的结果。
更新(根据您的需求) - JSFiddle:
$(function () { // execute when the page's loaded
var myArray = $('#parentEle div'); // select all divs inside #parentEle element
$.each(myArray, function () { // iterate over selected divs
$(this).removeClass('className'); // remove class
});
});
答案 1 :(得分:1)
我在问题中提出了含糊不清和缺乏明确性的建议:
var myArray = $('#parentEle div').map(function(){
return this;
}).get();
$.each(myArray, function(i,e){
$(e).removeClass('className');
});
加上HTML:
<div id="parentEle">
<div id="ele1" class="className">ele1</div>
<div id="ele2" class="className">ele2</div>
</div>
或者,在纯JavaScript中:
[].forEach.call(document.querySelectorAll('.className'), function(a){
a.classList.remove('className');
});