vanyatwo
@vanyatwo
Дизайн, веб-сайты и виртуальные туры

Как скопировать class в атрибут для каждого элемента, у которого есть class?

Есть элементы:
<div class="hello 1"></div>
<div class="hello a"></div>

Надо в атрибут поместить второй класс каждого элемента, у которого есть класс hello. Не могу понять как правильно написать цикл перебора.
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
space2pacman
@space2pacman
Просто царь.
JS
jsfiddle.net/vbcp4Lae
var hello = document.querySelectorAll(".hello");

for(var i = 0; i < hello.length; i++) {
	hello[i].setAttribute("classAttr", hello[i].classList[1]);
}

JQUERY
jsfiddle.net/vbcp4Lae/1
$(".hello").attr("classAttr", function() {
	return this.classList[1];
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
Не могу понять как правильно написать цикл перебора.

Цикл не нужен, метод attr умеет принимать функцию и применять её к каждому элементу набора:

$('.hello').attr('data-class', function() {
  return [...this.classList].filter(n => n !== 'hello');
});

Правда, тут есть один неясный момент - гарантируется ли, что классов будет всего два? Что если их окажется больше?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы