Javascript 获取动态创建的元素的id和值

Javascript 获取动态创建的元素的id和值,javascript,html,css,dom,Javascript,Html,Css,Dom,我正在尝试获取动态创建元素的ID,现在这些元素以输入字段的形式存在,用户可以修改这些字段。用户输入玩家的数量,然后他获取输入字段以键入他们的名称,我也在尝试获取他们的值,以下是我正在尝试的操作: // Creating the input fields const x = localStorage.getItem('playersNum'); const parentDiv = document.getElementById('player-list'); for (let i = 0; i &

我正在尝试获取动态创建元素的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);

有很多方法可以做到这一点:

在创建输入时将其添加到数组中 为每个播放器输入添加一个唯一的类,然后使用document.querySelectorAll.className 根据ID以player开头的输入选择输入 例如,下面只添加了Player i作为每个输入的值,但它可以做其他事情

//创建输入字段 //const x=localStorage.getItem'playersNum'; 设x=3; 让parentDiv=document.getElementById'player-list'; 对于let i=0;iplayer.value='player'+i; div{边框:1px实心aaaaaa}
为什么不在for循环之前将玩家初始化为数组,然后在创建时将每个玩家推入其中?或者给他们一个独特的类,比如说player,然后用document.querySelectorAll.player获取它们。您还可以使用document.querySelectorAll'input[id^=player]'来获取id以player开头的输入元素。@RobG如果这样做,我如何获取它们的值:document.querySelectorAll'input[id^=player]'因为.value不起作用。它返回一个静态值,然后您可以使用该静态值迭代获取这些值。我尝试过这样做,如何获取它们的值并将它们存储在某种数组中。答案显示了如何在节点上循环并设置值。要创建一个值数组,请执行完全相同的操作,并将该值推入类似valueArray.pushplayer.value的数组中。您还可以让values=Array.fromplayers.mapplayer=>player.value。