Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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 使用循环将数组值指定给元素_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 使用循环将数组值指定给元素

Javascript 使用循环将数组值指定给元素,javascript,jquery,arrays,Javascript,Jquery,Arrays,我怎样才能给李a,b,c的值?目前,我下面的代码,我得到了所有的c arr = ['a','b','c']; arr.forEach(function(obj){ var x = obj; $('li').each(function () { $(this).text(x); }); }); 我的代码有问题吗?这是因为在迭代数组并设置值时,您正在迭代所有li。text接受函数作为参数,该参数接受索引作为参数。这将消除迭代li和数组元素的需要: var arr

我怎样才能给李a,b,c的值?目前,我下面的代码,我得到了所有的c

arr = ['a','b','c'];

arr.forEach(function(obj){
var x = obj;
    $('li').each(function () {
        $(this).text(x);
    });

});

我的代码有问题吗?

这是因为在迭代数组并设置值时,您正在迭代所有li。text接受函数作为参数,该参数接受索引作为参数。这将消除迭代li和数组元素的需要:

var arr = ['a','b','c'];    
$('li').text(function(i){
  return arr[i];
});

首先,将所有li的文本设置为“a”,然后设置为“b”,最后设置为“c”

相反,您可以尝试迭代li元素,并将当前元素的文本内容设置为arr中的相应项:

var arr=['a','b','c']; $li.每个函数{ $this.textarr[i]; }; 您应该按arr进行迭代,而不是按所有li元素进行迭代,您可以这样做:

arr = ['a','b','c'];
$.each(arr, function(i,v){
    $('li').eq(i).text(v);
});
arr = ['a','b','c'];
$('li').each(function(index) {
    $(this).text(arr[index]);
});

这样,您将分配与数组中元素数量完全相同的li文本。

在您的代码中,每次执行外部迭代器时,都会使用迭代结果发送文本。因此,你会得到所有的“c”

要正确执行此操作,您应该编写如下代码:

arr = ['a','b','c'];
$.each(arr, function(i,v){
    $('li').eq(i).text(v);
});
arr = ['a','b','c'];
$('li').each(function(index) {
    $(this).text(arr[index]);
});
jQuery每个函数都将传入一个索引,您可以使用该索引

arr = ['a','b','c'];

$('li').each(function(i) {
    $(this).text(arr[i]);
});