我是jQuery的新手,每次循环都卡住了。使用foreach循环打印所有结果
我试图从对象的变量得到的值,当我打印使用alert()
,我得到的所有结果。
但是,当我试图把它打印到我只得到最后的结果输出到HTML而不是3的HTML,在这种情况下。
$.each(playlist, function(index, item) {
alert(item.title);
$('.playlist1').text(item.title);
});
我是jQuery的新手,每次循环都卡住了。使用foreach循环打印所有结果
我试图从对象的变量得到的值,当我打印使用alert()
,我得到的所有结果。
但是,当我试图把它打印到我只得到最后的结果输出到HTML而不是3的HTML,在这种情况下。
$.each(playlist, function(index, item) {
alert(item.title);
$('.playlist1').text(item.title);
});
其实,你不是停留在.each()
循环,你被困在.text()
。
.text()
替换新文本的当前文本,所以你永远只看到在这种情况下的最后一个。可能使用.append()
。
你也可以以这种方式使用.text()
:
$('.playlist1').text(function(index, text){
return text + item.title;
});
假设.playlist1
是ul
或ol
,可以追加到它是这样的:
$('.playlist1').append('<li>'+item.title+'</li>');
您需要使用append
功能而不是text
:
$('.playlist1').append(item.title);
text()
用新内容替换元素的内容。 append()
将新内容附加到元素的现有内容。
更新
在每个项目添加为列表项做到这一点:
$('.playlist1').append('<li>' + item.title + '</li>');
使用警报可以中断脚本的执行,可以考虑使用的console.log()
console.log(item.title);
每个循环迭代非常像foreach,在这种情况下,我是迭代器,并且项目是值
$.each(playlist, function (i, item) {
迭代时,将“class = playlist1”的每个元素的文本设置为item.title
。
$('.playlist1').text(item.title);
});
虽然语法上没有任何错误,但存在逻辑错误。也许你可以试试这个:
var fulltext = [];//initialize empty array
$.each(playlist, function (i, item) {
fulltext.push(item.title);//iterate through playlist and collect titles
});
$('.playlist1').text(fulltext.join(" "));//join array with titles with a blank space
//and put them in class playlist1
,你可以对列表中的项目做到这一点:
var ul = document.createElement("ul");
$.each(playlist, function (i, item) {
var thisLi = document.createElement("li");
thisLi.innerHTML = item;
ul.appendChild(thisLi);
});
$('.playlist1').append(ul);
@blytung - 查看创建列表的编辑。 –
呵呵,谢谢!你必须每天都要学习新东西,而且我只学过一门!谢谢! :) – blytung
ahh,所以它是索引,thanx为了让它感觉出来。 :) –
谢谢你们,它工作得很好。但正如我之前说过的,我对这种类型的东西不熟悉。如果我想将所有结果循环到列表项中,我该怎么做?不要真的让它工作。 – blytung