【发布时间】:2020-01-06 10:11:19
【问题描述】:
我正在使用一个函数将字符串从模式中的 textArea 添加到数组,然后使用 innerHTML (which I learned here) 将它们打印到 DOM。该函数通过模态框上的按钮调用。
function setArray( ){
let textAreaElement = document.getElementById('textToArray');
let listArray = textAreaElement.value.trim().split('\n');
console.log(listArray);
document.getElementById('PrintToSidebar').innerHTML = listArray.join("<p>");//I want to add IDs in the <p> tags created here
modal.style.display = "none";
}
这似乎运作良好,但我还想为每个 <p> 设置一个 ID,ID 等于字符串值。
例如,如果 listArray = ["Line 1", "Line 2"],那么我想要的 innerHTML 将导致:
<p id="line-1">Line 1</p>
<p id="line-2">Line 2</p>
我的搜索似乎表明我需要使用 setAttribute 方法。但我也在想我需要先循环遍历 listArray。
我只接触了 Javascript 几天(实际上对编码完全陌生),因此详细的解决方案将非常有帮助。谢谢!
【问题讨论】:
-
最好不要使用innerHTML,而是用
document.createElement创建p标签,这样你就可以设置它们的id属性。 -
值得注意的是,建议的
id的line 1和line 2是technically invalid,因为id中不能有空格。这可以通过 Javascript Replace 函数删除空格轻松缓解。
标签: javascript html arrays