-2

我发现这个问题与我面临的问题完全相同,但答案建议使用对象进行动态访问。这可能很好,但我正在寻找关于如何在函数名称中包含变量的确切简单答案。

我用的是ClockPick ,不敢乱码,所以不能用对象什么的。问题是[ $("#clockpick"+x).clockpick ]结果不是[ $("#clockpick0").clockpick ],而是[ $("#clockpick"+x).clockpick ]

这一切都发生在 PHP 循环中,看起来像这样:

var x = 0; (declared previously outside of the loop)
<script>
function doit()
{
  $("#clockpick"+x).clockpick
  ({
      starthour: 7,
      endhour: 20
      ...
  });
}
x++;

时间选择器.php

<script>var times = 0;</script>
<?php
$goo = $_POST['goo'];
for ($foo = 0; $foo < $goo; $foo++)
{
  ?>
  <script>
  function clocker()
  {
  $("#clockpick"+times).clockpick
  ({
    starthour: 7,
    endhour: 20
  });
  } times++;
  </script>
  <?php
  print "<input type='text' id='clockpick$foo' onclick='clocker()' />
?>

如前所述,如果我手动将“时间”设置为一个数字,这可以正常工作,但正如你所看到的,我不知道 $goo 有什么数字。总而言之,这仍然是 153 行的实际页面的简化演示。

4

1 回答 1

0

您正在使用要在 php 循环中递增的 javascript 变量。问题是 php 只会按原样编写您的 javascript 代码,并$("#clockpick"+times)在 php 循环的每次迭代中打印。为了实现你想要做的,你应该使用而不是像这样$foo无用的javascript变量times

<?php
$goo = $_POST['goo'];
for ($foo = 0; $foo < $goo; $foo++)
{
?>
<script>
function clocker()
{
<?php
print "$('#clockpick$foo').clockpick"
?>
({
    starthour: 7,
    endhour: 20
});
}
</script>
<?php
print "<input type='text' id='clockpick$foo' onclick='clocker()' />"
}
?>
于 2013-10-25T09:22:00.200 回答