.append里面的.html不工作在jquery
我想使用.append使用for循环显示多个数据。 我需要通过.html函数第二次点击某些其他数据来替换所有数据。.append里面的.html不工作在jquery
这是我的代码更多的解释。
$(".content").html(function(){
for(var l=1; l<4 ; l++)
$(".content").append("Event-"+l+"<br>"+player.activity[l].desc+"<br>");
}
假设我有活性的json象下面这样:
player : [{
"name": "Johny",
"activity" : [
{"id:1","desc" : "abc"},
{"id:2","desc" : "abc"},
{"id:3","desc" : "abc"}
]
},{
"name": "Mony",
"activity" : [
{"id:1","desc" : "abc"},
{"id:2","desc" : "abc"},
{"id:3","desc" : "abc"}
]
}]
所以基本上我想取代我佐尼的活动MONY的。
我也尝试交换内部.append里面的.html这样的方法工作正常,但.app内部.html不工作。它将Mony的数据附加到johny的数据。
有什么建议吗?
功能
is not allowed在
.html
方法。只有字符串。
您的for
应该按照您的要求进行。不要.html
的函数内部放置:
for(var l=1; l<4 ; l++)
$(".content").append("Event-"+l+"<br>"+player.activity[l].desc+"<br>");
}
如果您要更换的内容,那么只需for
之前调用.html
与空字符串:
$(".content").html("");
for(var l=1; l<4 ; l++)
$(".content").append("Event-"+l+"<br>"+player.activity[l].desc+"<br>");
}
UPDATE
建立一个字符串并只更改一次DOM更好。这将减少DOM访问。
var html = "";
for(var l=1; l<4 ; l++)
html += "Event-"+l+"<br>"+player.activity[l].desc+"<br>";
}
$(".content").html(html);
更新#2
功能允许的,但return
应使用:
$(".content").html(function(){
var html = "";
for(var l=1; l<4 ; l++)
html += "Event-"+l+"<br>"+player.activity[l].desc+"<br>";
}
return html;
});
对不起,允许。我更新了。应该使用'return' – phts 2015-04-03 07:19:12
@phts thnx作为答案。我使用了空的.html方法。 – 2015-04-03 07:24:17
此代码是非常马车。
1).html()应该有参数作为字符串不是函数。
2)播放器是数组player.activity [l]将不起作用。
如果你想看到所有的说明:以下是该解决方案
for(var i=0; i<player.length ; i++){
for(var j=0; j<player[i].length ; j++){
$(".content").append("Event-"+j+"<br>"+player[i].activity[j].desc+"<br>");
}
}
Thnx您的建议。但是我想用其他的替代一个信息块,我之前在.html(“”)之前用循环 – 2015-04-03 07:27:21
在jQuery 1.4中,
.html()
方法允许HTML内容通过传递设置在函数中
所以,是的,你可以使用.html()
里面的函数。函数必须返回一个字符串,它将是元素的内容。
$(".content").html(function(){
var content = "";
for (var l = 1; l < 4 ; l++) {
content += "Event-" + l + "<br>" + player.activity[l].desc + "<br>";
}
return content;
});
来实现,但是这并没有传递函数。实际上仅传递一个字符串。在函数()中,你正在返回一个字符串。实际上用一个字符串调用.html()方法。 – Tuhin 2015-04-03 07:23:05
不,我们不是调用函数,只是传递它。请注意'.html()'内部没有函数调用操作符调用 – meskobalazs 2015-04-03 07:23:48
但是您不能否认.html()具有参数字符串。我们可以用很多方式编写代码。但最后它必须是字符串 – Tuhin 2015-04-03 07:26:02
为什么不在''''''''.html's函数外面留下'for'? – phts 2015-04-03 07:08:24