Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建一个Id';s_Javascript_Html_Arrays - Fatal编程技术网

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);