Javascript 创建一个Id';s
我有一个数组,Javascript 创建一个Id';s,javascript,html,arrays,Javascript,Html,Arrays,我有一个数组,var-players=['','','','','',''。现在,我希望该数组包含列表中的6项: <ul id="Available Players"> <li id="node7">Player A</li> <li id="node8">Player B</li> <li id="node9">Player C</li>
var-players=['','','','','',''代码>。现在,我希望该数组包含列表中的6项:
<ul id="Available Players">
<li id="node7">Player A</li>
<li id="node8">Player B</li>
<li id="node9">Player C</li>
<li id="node10">Player D</li>
<li id="node11">Player E</li>
<li id="node12">Player F</li>
</ul>
玩家A
玩家B
玩家C
玩家D
玩家E
玩家F
现在,我想让数组看起来像这样:
var players=[.node7、.node8、.node9、.node10、.node11、.node12]代码>。另外,如果我要创建一个名为round1
的新数组,我可以从players
数组中获取前4个值吗?它看起来应该有点像这样:var round1=[players[0],players[1],players[2],players[3]代码>
那么我如何才能做到这一切呢?您可以使用以下方法
var parent=document.getElementById('Available Players'),//获取'ul'元素
round1=[],//创建“round1”数组
players=Array.from(parent.children).map(函数(v){//获取所有的'li'元素
return“.”+v.id;//返回每个'li'元素的'id'属性
});
对于(var i=0;i<4;i++){//仅从“players”数组中推送四个前元素
round1.将(players[i]);//推送到“round1”数组
}
控制台日志(播放器)//揭示结果
控制台日志(第1轮)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
玩家A
玩家B
玩家C
玩家D
玩家E
玩家F
您可以使用以下方法
var parent=document.getElementById('Available Players'),//获取'ul'元素
round1=[],//创建“round1”数组
players=Array.from(parent.children).map(函数(v){//获取所有的'li'元素
return“.”+v.id;//返回每个'li'元素的'id'属性
});
对于(var i=0;i<4;i++){//仅从“players”数组中推送四个前元素
round1.将(players[i]);//推送到“round1”数组
}
控制台日志(播放器)//揭示结果
控制台日志(第1轮)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
玩家A
玩家B
玩家C
玩家D
玩家E
玩家F
您可以使用元素.children
属性获取ul
中每个li
的列表,然后使用Array#map
获取它们的id
。然后,使用players.slice(0,4)
获得您的round1
播放器
您的问题不清楚您是否希望players
保存每个玩家的姓名、li
元素本身或每个li
元素的id
。以下是您将如何获得所有三个:
var节点=[].slice.call(
document.getElementById('Available Players').children
)
函数prop(o){return o[this]}
var nodeIds=nodes.map(prop'id')
var playerNames=nodes.map(prop'textContent')
console.log(节点)
console.log(nodeIds)
控制台日志(playerNames)
var players=nodeIds//或以上任意数组
var round1=玩家。切片(0,4)
console.log(第1轮)
.as控制台包装{最小高度:100vh;}
玩家A
玩家B
玩家C
玩家D
玩家E
玩家F
您可以使用元素.children
属性获取ul
中每个li
的列表,然后使用Array#map
获取它们的id
。然后,使用players.slice(0,4)
获得您的round1
播放器
您的问题不清楚您是否希望players
保存每个玩家的姓名、li
元素本身或每个li
元素的id
。以下是您将如何获得所有三个:
var节点=[].slice.call(
document.getElementById('Available Players').children
)
函数prop(o){return o[this]}
var nodeIds=nodes.map(prop'id')
var playerNames=nodes.map(prop'textContent')
console.log(节点)
console.log(nodeIds)
控制台日志(playerNames)
var players=nodeIds//或以上任意数组
var round1=玩家。切片(0,4)
console.log(第1轮)
.as控制台包装{最小高度:100vh;}
玩家A
玩家B
玩家C
玩家D
玩家E
玩家F
您可以获取父id的节点,然后列出所有元素并提取id
var nodes=document.getElementById('Available Players').getElementsByTagName('li'),
ids=Array.prototype.map.call(节点,函数(a){
返回“.”+a.getAttribute('id');
}),
round1=ids.slice(0,4);
控制台日志(ids);
控制台日志(第1轮)代码>
玩家A
玩家B
玩家C
玩家D
玩家E
玩家F
您可以获取父id的节点,然后列出所有元素并提取id
var nodes=document.getElementById('Available Players').getElementsByTagName('li'),
ids=Array.prototype.map.call(节点,函数(a){
返回“.”+a.getAttribute('id');
}),
第1轮
<ul id="available-players">
<li id="node7">Player A</li>
<li id="node8">Player B</li>
<li id="node9">Player C</li>
<li id="node10">Player D</li>
<li id="node11">Player E</li>
<li id="node12">Player F</li>
</ul>
var players = [];
var li = document.querySelectorAll('#available-players li');
for (var i = 0; i < li.length; i++) {
players.push(li[i].getAttribute('id'));
}
var players=[];
var round1=[];
var items=$("#Available_Players li")
items.each(function(){
console.log($(this));
players.push('.'+$(this)[0].id);
});
round1 = players.slice(0, 4);
console.log(players);
console.log(round1);