Задать вопрос
@Alex-Broudy

Как заменить значение id в div блоках, если значение id равно значению класса?

Уважаемые знатоки, просьба подсказать, что делаю не так.
Есть такой вод html код, в котором динамично добавляются классы и id у вложенных блоков и иногда они совпадают:
<div class="all-blocks">
     <div id="block-1" class="block block-1">содержимое блока</div>
     <div id="block-2" class="block block-2">содержимое блока</div>
     <div id="block-3" class="block block-3">содержимое блока</div>
    <div id="block-4" class="block block-4">содержимое блока</div>
</div>


Но если у блока с классом all-blocks присутствует еще класс, например color-blocks, то необходимо у вложенных блоков проверить, есть ли совпадение значений у id и классов, - если есть, то необходимо у каждого такого блока добавить определенный текст к значению id., например если id был block-1 то в итоге должен стать block-1_2

попытался реализовать эту задумку, но что-то не так делаю от нехватки знаний (еще учусь) и не срабатывает ничего

jQuery(document).ready(function() { 
     var colors_blocks = jQuery(this).closest('.color-blocks');
     var block_class = color_blocks.find('.block');
     if(colors_blocks .hasClass($(this.attr('id'))) {
		$(this).attr('id').text('_2');
	}				
});
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$('.all-blocks.color-blocks .block').attr('id', function(i, id) {
  return $(this).hasClass(id) ? `${id}_2` : id;
});

или

document.querySelectorAll('.all-blocks.color-blocks .block').forEach(n => {
  n.id += n.classList.contains(n.id) ? '_2' : '';
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы