Javascript爆炸和循环

时间:2013-07-11 14:52:36

标签: php javascript jquery

我已创建此脚本以通过php:

从一个数据中获取数字
var n_polls=<?php echo $t_random_number;?>;
var myArray=n_polls.split(','); //explode

for (i=0;i<4;i++)
{
$("#t_sl_poll_"+myArray[i).hide();
}

这个想法是从一个随机的民意调查系统中给出一些来自php的数字,我希望通过id将这个数据爆解为全部循环。问题是,我看到javascript的爆炸功能失败,所有时间都没有给我任何东西。我该如何解决这个问题?

谢谢。

4 个答案:

答案 0 :(得分:2)

为什么你可以让PHP只插入数组时在Javascript中爆炸?

<?php

$numbers = array(1,2,3,4);
?>

<script type="text/javascript">

var n_polls = <?php echo json_encode($numbers); ?>;

for (i in n_polls) {
   $("#t_sl_poll_" + n_polls[i]).hide();
}

可以进行进一步的优化,但这将是一个开始的地方。

答案 1 :(得分:0)

看一下你的来源。你的错误控制台会告诉你同样的事情。您不是将数组(而不是数字)放在引号中,因此在运行时无法编译:

var n_polls="<?php echo $t_random_number;?>";
//QUOTES!   ^                              ^

var myArray=n_polls.split(','); //explode

for (i=0;i<4;i++)
{
    $("#t_sl_poll_"+myArray[i]).hide(); //Missing bracket
    //                       ^
}

现在它编译为

var n_polls="1, 2, 3, 4";

而不是

var n_polls=1, 2, 3, 4; //Useless non-working code - not enclosed in anything

答案 2 :(得分:0)

这里有两件事不对。

首先:因为你显然是交出一个字符串而不是一个从php到javascript的数字你必须写:var n_polls="<?php echo $t_random_number;?>";

第二:正如评论中已经指出的那样,你必须将$("#t_sl_poll_"+myArray[i]).hide();写入数组的实际地址和元素。

答案 3 :(得分:0)

您的代码应该用作

var myArray= [<?php echo $t_random_number;?>];

for (i=0;i<4;i++)
{
    $("#t_sl_poll_"+myArray[i]).hide();
}