Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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数组映射不适用于addClass_Javascript_Jquery_Html_Dom - Fatal编程技术网

JavaScript数组映射不适用于addClass

JavaScript数组映射不适用于addClass,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我想创建这样的HTML元素 <div> <span class="u-label"></span> <span class="u-title"></span> <span class="u-info"></span> </div> 我使用javascript代码$'div'.appendArray3.fill$'test'.mapel,index=>el.addClass['

我想创建这样的HTML元素

<div>
    <span class="u-label"></span>
    <span class="u-title"></span>
    <span class="u-info"></span>
</div>
我使用javascript代码$'div'.appendArray3.fill$'test'.mapel,index=>el.addClass['u-label','u-title','u-info'][index]

但是,它不起作用。它只返回test

在数组中添加类并使用for循环在数组中循环是一种更干净、更可读的方法:

var arr=['u-label','u-title','u-info']; forvar i=0;i $'div'.appendArray3.fill.mapel,index=>$'test'.addClass['u-label','u-title','u-info'][index];
您的HTML无效。只有元素可以是子元素ul@RoryMcCrossan对不起,我发现了我的错误,应该是div,而不是ul。但是,这不是重点。预期的输出是什么?@Ionut.fill$'test'只计算一次,因此您将拥有一个数组,其中包含对同一对象的3个引用,而不是已知的3个可以工作的不同对象,但我真的想知道为什么map不起作用。为什么Array3与Array不同。从新Array3?Array3不是返回数组吗?我发现一个问题:$'test'的返回值为空。当使用fill时,您将得到一个数组[null,null,null],该数组被送入map以添加Css类。使用Array3,您只有一个伪数组,它将通过array.from转换为一个实数组。Array3是类似于数组或可数组的东西。Array3似乎只有一个长度,但没有为您要填充的三个元素保留空间。我认为真正的问题是,您将同一元素添加到数组中3次,而不是3个单独的元素。啊,是的,当我使用函数x=>$test'时,我会在每次迭代中创建一个新的引用。
$('ul').append(Array.from(new Array(3)).map(x => $('<li>test</li>')).map((el, index)=>el.addClass(['u-label','u-title','u-info'][index])));