@the5x

InnerHTML для radio. Есть ли более элегантное решение?

Пишу свой quiz.
Он состоит из массива объектов, в котором есть:
1. Вопрос
2. Варианты ответов в виде массива.

Вопросы и варианты ответа я встраиваю через innerHTML. Код выглядит грязный, так как и JS и HTML в функциях. Как можно встроить radio, более элегантно, возможно без innerHTML?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
Зачем? Нормальная практика. А jsx в react как же? Да, это не совсем то же самое, но внешне выглядит почти так же. Кроме того это наоборот гораздо нагляднее, чем городить огороды из document.createElement со всеми атрибутами и проч.

Сами сравните, какой вариант короче и нагляднее?
<div id="one"></div>
<div id="two"></div>


const one = document.querySelector('#one')
const two = document.querySelector('#two')

// 1
one.innerHTML = `
  <label class="label">
    <input type="radio" checked />
    <span>Radio input item</span>
  </label>
`

// 2
const label = document.createElement('label')
const input = document.createElement('input')
const title = document.createElement('span')

label.className = 'label'
input.type = 'radio'
input.setAttribute('checked', true)
title.textContent = 'Radio input item'

label.appendChild(input)
label.appendChild(title)
two.appendChild(label)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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