如何给{,1}} a,b,c的值?目前我的下面的代码我得到了所有c。
li
我的代码出了什么问题?
答案 0 :(得分:3)
这是因为当迭代数组并设置值时,您正在迭代所有li
。 jquery .text()
接受函数作为参数,接受索引作为参数。这将消除迭代li和数组元素的需要:
var arr = ['a','b','c'];
$('li').text(function(i){
return arr[i];
});
<强> Working Demo 强>
答案 1 :(得分:3)
首先,您将所有li
的文字设置为'a'
,然后设置为'b'
,最后设置为'c'
。
相反,您可以尝试迭代li
元素,并将当前元素的文本内容设置为arr
中的相应项:
var arr = ['a','b','c'];
$('li').each(function(i) {
$(this).text(arr[i]);
});
var arr = ['a','b','c'];
$('li').each(function(i) {
$(this).text(arr[i]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
或者(但类似地),您可以迭代数组,并将相应li
的文本内容设置为当前值:
var arr = ['a','b','c'],
$li = $('li');
arr.forEach(function(txt, i) {
$li.eq(i).text(txt);
});
var arr = ['a','b','c'],
$li = $('li');
arr.forEach(function(txt, i) {
$li.eq(i).text(txt);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
答案 2 :(得分:3)
您应该按arr
而不是所有li
元素进行迭代,您可以这样做:
arr = ['a','b','c'];
$.each(arr, function(i,v){
$('li').eq(i).text(v);
});
这样,您将分配与li
文本完全相同的数量,因为数组中有元素。
答案 3 :(得分:0)
在您的代码中,每次外部迭代器执行时,所有<li>
都会使用迭代结果发送短信。因此,您将获得所有&#39;
要做得对,你应该像这样编码:
arr = ['a','b','c'];
$('li').each(function(index) {
$(this).text(arr[index]);
});
答案 4 :(得分:0)
jQuery each()
函数将传入索引,您可以使用
arr = ['a','b','c'];
$('li').each(function(i) {
$(this).text(arr[i]);
});