0

当页面加载时,我想生成一个 JavaScript 循环。项目总数取决于页面上已有的 PHP 字符串。

<script type="text/javascript">

function Generation(){
    var loopTotal = <?=$TotalNumberOfRows?>;
    var innerToUpdate=$("#loopItemSet");

    var page=0;
    for (var i=0;i<=<?=$TotalNumberOfRows?>;i+=24)
    {
        page++;
        // document.write(i);
        innerToUpdate.innerHTML="<a href='link.php?go="+i+"'> page number "+page+"</a>";
    }       
}

$(document).ready(function(){
    Generation();   
});

</script>

它应该从 24 开始返回三个链接,进入 52,3 次。

4

3 回答 3

1

此行在每次迭代中覆盖innerHTML您的元素。您可以简单地添加+这样的:

innerToUpdate.innerHTML += "<a href='link.php?go="+i+"'> page number "+page+"</a>";

或者首先收集字符串中的所有条目,然后只更新该元素的 HTML 内容一次:

    function Generation(){
        var loopTotal = <?=$TotalNumberOfRows?>;
        var innerToUpdate=$("#loopItemSet");
        // var innerToUpdate=$(".loopItemSet"); // for multiple elements.

        var page=0, content = '';
        for (var i=0;i<=<?=$TotalNumberOfRows?>;i+=24)
        {
            page++;
            // document.write(i);
            content += "<a href='link.php?go="+i+"'> page number "+page+"</a>";
        }
        innerToUpdate.html( content );
    }

innerHTML我用 jQuery替换了你的调用html()。在我看来,如果您使用 jQuery,请在需要的地方使用它。

于 2012-10-30T16:32:09.073 回答
0

你想使用 jQuery 的追加

而不是这个:

    innerToUpdate.innerHTML="<a href="link.php?go="+i+""> page number "+page+"</a>";

试试这个:

    innerToUpdate.append('<a href="link.php?go='+i+'"> page number '+page+'</a>');

检查该行中的引号,我编辑了一些嵌套严重的双引号。

于 2012-10-30T16:30:58.853 回答
0

问题尚不清楚,但我假设您只获得一个链接而不是 3 个,并且想知道原因。它在这里:

    for (var i=0;i<=<?=$TotalNumberOfRows?>;i+=24)
    {
        page++;
        // document.write(i);
        innerToUpdate.innerHTML="<a href='link.php?go="+i+"'> page number "+page+"</a>";
    }       

应该读:

  for (var i=0;i<=<?=$TotalNumberOfRows?>;i+=24)
        {
            page++;
            // document.write(i);
            innerToUpdate.innerHTML+="<a href='link.php?go="+i+"'> page number "+page+"</a>";
        } 

您当前的代码每次都重置 html 而不是连接到它。

于 2012-10-30T16:33:08.403 回答