#javascript #html #getelementbyid
Вопрос:
У меня есть HTML-строка, сохраненная в качестве переменной JavaScript в моем js-коде:
myHTML= `<div id="type1-div"><p id="type1-lbl"> </p>
<img id="type1-img" class="center stim" src="${myFolder}/photo${n}.png"></div>
<div id="type2-div"><p id="type2-lbl"> </p>
<img id = "type2-img" class="center stim" src="${myFolder}/photo${m}.png"</div>`;
Затем я хочу добавить в класс эти элементы на основе определенных условий и изменить часть их содержимого на основе их идентификатора.
Они, например, не работали, так как (я думаю?) myHTML еще не является частью HTML-документа.
document.getElementById("type1-div").classList.add("top");
document.getElementById(id).innerHTML = "TOP PARAGRAPH"
Пример желаемого желаемого вывода будет таким, что myHTML теперь:
`<div id="type1-div" class="top"><p id="type1-lbl">TOP PARAGRAPH</p>
<img id="type1-img" class="center stim" src="${myFolder}/photo${n}.png"></div>
<div id="type2-div" class="bottom"><p id="type2-lbl">BOTTOM PARAGRAPH </p>
<img id = "type2-img" class="center stim" src="${myFolder}/photo${m}.png"</div>`;
Есть какие-нибудь идеи о том, как этого добиться? Спасибо!
Комментарии:
1.
document.getElementById(id).innerHTML = new HTML
, что этоHTML
такое ? Ты имеешь в видуdocument.getElementById(id).innerHTML = myHTML
?2. Вы можете создать
DocumentFragment
и использоватьmyHTML
его в качестве своегоinnerHTML
. Тогда вы можете использовать методы DOM для этого.3. @Phix извини, я виноват. Отредактировано сейчас!
4. Узел должен быть в DOM, чтобы получить его по идентификатору. Возможно, вы хотите создать такие элементы, как
const varNameHere = document.createElement(tagNameHere)
вместо этого, чтобы вы могли получить элемент до того, как он будет добавлен в DOM. Затем вы также можете прикрепить события непосредственно к переменной. Я бы также использовал.textContent =
вместо.innerHTML =
.