Предполагая, что a[i].source
и т. Д. Действительно ссылаются на узел / элемент, вы можете использовать .add()
, чтобы добавить их по отдельности в коллекцию , то есть:
$(a[i].source).add(a[i].canvas).add(a[i].target).addClass('something');
Этоможет быть излишне многословным.Вы можете просто сконструировать массив и рассчитывать на неявную итерацию в jQuery ( кредит @ Rory ):
$([a[i].source, a[i].canvas, a[i].target]).addClass('something');
Однако это на самом деле не нужно.Как насчет просто использовать нативный JS?Array.prototype.forEach()
и Element.classList
очень широко поддерживаются на сегодняшний день:
ES6:
[a[i].source, a[i].canvas, a[i].target].forEach(el => el.classList.add('something'));
ES5 (если вам нужна обратная совместимость с старыми браузерами, которые не поддерживают синтаксис ES6):
[a[i].source, a[i].canvas, a[i].target].forEach(function(el) {
el.classList.add('something');
});