将每个 Li 元素转换为一个对象
Convert each Li element into an object
我有一个由用户在页面上动态生成的游戏的无序列表。我想要做的是将每个列表项变成一个对象,让我可以存储他们的名字和分数。由于我仍在学习 JS,因此在代码上苦苦挣扎。我已经了解了创建每个对象的功能,但我不知道如何为 John、Paul、Ringo 和 George(或用户可能添加到列表中的任何其他人)实际创建对象
<ul id="playerList">
<li>John</li>
<li>Paul</li>
<li>Ringo</li>
<li>George</li>
</ul>
const createPlayer = (playerName, points) => {return {name, points}}
以下是如何从 html 中获取每个 li
内容,然后对这些数据做任何您想做的事情:
var numberOfPlayers = getElementsByTagName('li').length;
for (i=0 ; i< numberOfPlayers; i++) {
var playerData document.getElementById('playerList').getElementsByTagName('li')[i].innerText;
// create your objects or do whatever you want with playerData
}
根据 Yishmeray 的建议,您也可以这样做,根据您的喜好:
var playerData = document.querySelectorAll('#playerList li');
playerData.forEach(element => {
var thisPlayerTxt = element.innerText;
//create your objects or do whatever you want with playerData
});
以防万一您想创建一个 li
并将其附加到您的列表中:
var list = document.getElementById('playerList');
var name = 'John';
var player = document.createElement('li');
player.innerText = name;
list.appendChild(player);
我有一个由用户在页面上动态生成的游戏的无序列表。我想要做的是将每个列表项变成一个对象,让我可以存储他们的名字和分数。由于我仍在学习 JS,因此在代码上苦苦挣扎。我已经了解了创建每个对象的功能,但我不知道如何为 John、Paul、Ringo 和 George(或用户可能添加到列表中的任何其他人)实际创建对象
<ul id="playerList">
<li>John</li>
<li>Paul</li>
<li>Ringo</li>
<li>George</li>
</ul>
const createPlayer = (playerName, points) => {return {name, points}}
以下是如何从 html 中获取每个 li
内容,然后对这些数据做任何您想做的事情:
var numberOfPlayers = getElementsByTagName('li').length;
for (i=0 ; i< numberOfPlayers; i++) {
var playerData document.getElementById('playerList').getElementsByTagName('li')[i].innerText;
// create your objects or do whatever you want with playerData
}
根据 Yishmeray 的建议,您也可以这样做,根据您的喜好:
var playerData = document.querySelectorAll('#playerList li');
playerData.forEach(element => {
var thisPlayerTxt = element.innerText;
//create your objects or do whatever you want with playerData
});
以防万一您想创建一个 li
并将其附加到您的列表中:
var list = document.getElementById('playerList');
var name = 'John';
var player = document.createElement('li');
player.innerText = name;
list.appendChild(player);