我是jquery的新手,遇到一个问题,需要帮助。
我有一个sql查询来检索in并将它们放入数组中。我有一个循环,它用php为数组中每个id创建一个div。工作正常。
另一方面,我有一个javascript函数对相同的数组执行相同的操作,并在使用上面的函数创建的div中创建div,所有这些都是在jquery中完成的。
第一个显示id为的用户的图片。javascript one使用id显示用户的名称。
问题是jquery函数只在php循环中创建的第一个div中使用所有名称创建div。
我希望两者同时创建。我试过我所知道的一切,但就是找不到。
请帮帮忙。
代码如下:
$receivers是包含ids的数组。$totalreceivers是ids的计数。
function showfbnames() {
var receivers = <? echo $receivers; ?>;
var count = <? echo $totalreceivers; ?>;
for (var i = 0; i < count; i++) {
var temparray = ["<?php echo join("\", \"", $receivers); ?>"];
FB.api(
{
method: 'fql.query',
query: 'SELECT name FROM user WHERE uid='+temparray[i]
},
function(resp) {
$.each(resp, function(k,v) {
$("#divfather").append("<div class='tit' id ='fbname'>"+(v.name)+"</div>");
//$("#fbname").html(v.name);
})
}
);
}
}
php循环创建div:
<?for ($i = 0; $i < $totalreceivers; $i++) {?>
<script>showfbnames()</script>
<tr><td>
<div style="width:100%; height:150px;overflow:auto;border-top:1px solid #c89cc1;border-bottom:1px solid #c89cc1;" id="divfather">
<? echo "<img src='https://graph.facebook.com/$receivers[$i]/picture' width='40' style='float:left'/>";?>
</div>
</td>
</tr>
<? } ?>
发布于 2011-08-09 15:28:36
您的循环创建了多个id为"divfather“的div。
这不会产生你想要的结果。你需要让每个div都有不同的id。
id="divfather<?echo $i;?>"
另外,将id传递给"showfbnames“函数:
<script>showfbnames(<?echo $i;?>)</script>
这样您就可以在jquery代码中使用它:
function showfbnames(passedi) {
然后是$("#divfather"+passedi).append(
(注意:为了安全起见,我建议您将<script>
移动到div之后。你不需要这样做,但这太冒险了。)
发布于 2011-08-09 20:03:00
我收回我之前的回答;请选择这个作为可接受的解决方案。
我相信这就是你想要实现的:
<? for ($i = 0; $i < $totalreceivers; $i++) { ?>
<tr><td>
<div style="width:100%; height:150px;overflow:auto;border-top:1px solid #c89cc1;border-bottom:1px solid #c89cc1;" id="divfather<? echo $i; ?>">
<? echo "<img src='https://graph.facebook.com/$receivers[$i]/picture' width='40' style='float:left'/>"; ?>
</div>
</td></tr>
<? } ?>
<script type="text/javascript">
var count = <? echo $totalreceivers; ?>;
var temparray = ["<?php echo join("\", \"", $receivers); ?>"];
for (var i = 0; i < count; i++) {
FB.api(
{
method: 'fql.query',
query: 'SELECT name FROM user WHERE uid='+temparray[i]
},
function(resp) {
$.each(resp, function(k,v) {
$("#divfather"+i).append("<div class='tit' id ='fbname"+i+"'>"+(v.name)+"</div>");
//$("#fbname").html(v.name);
})
}
);
}
</script>
https://stackoverflow.com/questions/6996648
复制相似问题