Задать вопрос
@BValentin

Как вывести атрибут?

Подскажите, пожалуйста, как правильно получить и вывести атрибут

Имеется такая структура:

<div class="class-1">
<!-- сюда поставить <div>ИМЯ 1</div> -->
<div class="class-2">	
<div class="class-3">	
	<span data-name="ИМЯ 1"></span>
</div>
</div>
</div>

<div class="class-1">
<!-- сюда поставить <div>ИМЯ 2</div> -->
<div class="class-2">	
<div class="class-3">	
	<span data-name="ИМЯ 2"></span>
</div>
</div>
</div>
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Куда и кого надо добавить, о каком data-атрибуте идёт речь:

const containerSelector = '.class-1';
const tag = 'div';
const key = 'name';
const attrSelector = `[data-${key}]`;

Добавляем:

$(containerSelector).prepend(function() {
  return $(`<${tag}>`).text($(attrSelector, this).data(key));
});

или

document.querySelectorAll(containerSelector).forEach(n => {
  const val = n.querySelector(attrSelector).dataset[key];

  // можем добавлять разметку
  n.insertAdjacentHTML('afterbegin', `<${tag}>${val}</${tag}>`);

  // или элемент
  const el = document.createElement(tag);
  el.textContent = val;

  n.prepend(el);
  // или
  // n.firstChild.before(el);
  // n.insertBefore(el, n.firstChild);
  // n.insertAdjacentElement('afterbegin', el);
  // n.firstChild.replaceWith(el, n.firstChild);
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Все атрибуты data-* можно получить через свойство dataset
HTMLElement.dataset.name // ИМЯ 1

  1. Взять div
  2. Найти в нем элемент с нужным атрибутом
  3. Получить значение атрибута
  4. Создать новый div
  5. Вставить в него значение атрибута
  6. Добавить этот див в DOM
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
В jQuery это метод data()
Ответ написан
Ваш ответ на вопрос

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

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