如何将id传递给javascript?

时间:2013-05-09 10:04:48

标签: javascript codeigniter

我正在开发一个codeigniter网站。在我的数据库中,我有一个项目和一些project_logs。

我想检查每个项目有多少个日志,并在每个项目的范围内显示它。但是我如何将每个项目的ID传递给javascript?

我尝试在我的脚本中执行此操作:

setInterval(
    function (){
    var ID = $(".trial").attr("data-id");
    var el = $('span#trial-' + ID);
    $(el).load("<? echo base_url()?>/projects_logs/checkMessage/" + ID);
}, 1000);

我的观点:

<ul class="dropdown-slider">
<? foreach($roster->latest->result_object() as $project) { ?>
     <li class="trial" data-id="<?=$project->id?>">
           <a href="<? echo base_url();?>projects/<?=$project->id?>">
               <?=$project->title?><span id="trial-<?=$project->id?>" data-id="<?=$project->id?>"></span>
           </a>
      </li>
<? } ?> 
</ul>

在我的控制器中,它将返回项目的ID以检查脚本是否有效,但稍后它将执行一个计算项目有多少日志的查询。现在没有任何事情发生。

我不熟悉javascript,只能通过谷歌学习。

1 个答案:

答案 0 :(得分:0)

您的JavaScript中有太多功能:

setInterval(
    function (){function checkMessage(){
      // ...
}, 1000);

上面的结束括号结束“checkMessage()”,你永远不会调用它。只需从上面删除“function checkMessage(){”,你应该有一些计算出来的东西:

setInterval(
    function (){
      // ...
}, 1000);

请注意,您的JavaScript代码对列表中的第一个元素进行操作,并且不对所有元素进行操作。使用jQuery,您可以使用.each()来操作列表中的所有元素。

将来,调试这些的好方法是:

  1. 查看JavaScript错误控制台以查看是否存在任何明显错误。
  2. 检查DOM以确保它看起来像您期望的那样。
  3. 使用console.log()确保实际调用您的JavaScript。
  4. 使用console.log()查看中间计算是什么。