1

我创建了这个脚本来从一个通过 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的explode函数失败了,一直没有给我任何东西。我怎样才能解决这个问题?

谢谢你。

4

4 回答 4

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();
}

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

于 2013-07-11T14:57:37.687 回答
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
于 2013-07-11T14:56:42.397 回答
0

这里有两件事不对。

第一:由于您显然将字符串而不是数字从 php 移交给 javascript,因此您必须编写:var n_polls="<?php echo $t_random_number;?>";

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

于 2013-07-11T14:57:22.780 回答
0

你的代码应该像

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

for (i=0;i<4;i++)
{
    $("#t_sl_poll_"+myArray[i]).hide();
}
于 2013-07-11T15:00:47.937 回答