Я ожидаю, что идентификатор для флажки обновляется для добавления _n (откуда n текущая позиция) и Span внутри лейбла получает его контент? Чтобы охватить n . Как есть, только этикетка обновляется так же, как и ожидалось, и я не могу понять, почему или как это сделать так, чтобы они были обновлены. Если я обновлю (например), Span непосредственно работает, как показано в конце JS. Я использую QuerySelectorall ("*") , потому что в реальном коде я не знаю, каким будет содержание тега шаблона, поэтому мне нужно проверить и обновить все соответствующие теги (что намного больше, чем в этом примере, это просто для того, чтобы выделить проблему). class = "Snippet">
Код: Выделить всё
document.getElementById("add").addEventListener("click", function() {
let clone=document.getElementById("template").firstElementChild.cloneNode(true);
let pos = parseInt(document.getElementById("container").dataset.pos);
pos++;
document.getElementById("container").dataset.pos = pos;
let elements=clone.querySelectorAll("*");
for (let e of elements) {
if (e.nodeName==="LABEL") {
e.innerHTML+=" LABEL "+pos;
}
else if (e.nodeName==="INPUT") {
console.log("Modifying input");
e.id+="_"+pos;
}
else if (e.nodeName==="SPAN") {
console.log("Modifying span");
e.innerHTML="SPAN "+pos;
console.log("Span content is now",e.innerHTML);
}
}
clone.querySelector("span").innerHTML += " This works!";
console.log("Check id of checkbox (should be checkbox_"+pos+"): ", clone.querySelector("input").id);
document.getElementById("container").appendChild(clone);
});< /code>
Checkbox ?
Add
Примечание. Примечание: первоначально шаблон Div был в метке шаблона, я изменил его на Div, чтобы убедиться, что проблема не была связана с тегом шаблона.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... updated-id
Мобильная версия