【发布时间】:2021-04-01 15:13:06
【问题描述】:
我正在尝试获取动态创建元素的 id,现在这些元素采用用户可以修改的输入字段的形式(用户输入玩家数量,然后他获取输入字段以输入他们的名称),我也在尝试获取它们的值,这就是我想要做的:
// Creating the input fields
const x = localStorage.getItem('playersNum');
const parentDiv = document.getElementById('player-list');
for (let i = 0; i < x; i++) {
const newInput = document.createElement("INPUT");
newInput.setAttribute("type", "text");
newInput.setAttribute("class", "form-control");
newInput.setAttribute("id", `player${i}`);
newInput.setAttribute("placeholder", "Player's Name");
parentDiv.appendChild(newInput);
}
// Trying to access them
const players = document.getElementById('player-list').children;
console.log(players.value);
【问题讨论】:
-
为什么不在 for 循环之前将 players 初始化为一个数组,然后在创建每个“玩家”时将它们 push 放入其中?或者给他们一个独特的班级(比如“玩家”)并通过
document.querySelectorAll('.player')获得他们。您还可以使用document.querySelectorAll('input[id^=player]')获取 ID 以“player”开头的输入元素。 -
@RobG 如果我这样做,我该如何获取它们的值:“document.querySelectorAll('input[id^=player]')”,因为 .value 不起作用。
标签: javascript html css dom