问题jquery倒计时只显示product1的计时器,但不显示product2,.. n产品

时间:2011-06-28 16:19:12

标签: php jquery countdown

    <script type="text/javascript">
       $(function () {
           var id = $("#id").val();
           var endDate = $("#endtime_" + id).val();
           $('#defaultCountdown_'+id).countdown({until: endDate});
        });
    </script>

    while($row = mysql_fetch_assoc($result))
    {
...
    ?>
    <input type="hidden" id="id" value="<?php echo $row['id'] ?>" />
    <span id="<?php echo "defaultCountdown_" . $row['id'] ?>"></span>
    <input type="hidden" id="<?php echo "endtime_" . $row['id']?>" value="<?php echo $row['end_time'] ?>" />
    <?php
    }

帮助我!!!

1 个答案:

答案 0 :(得分:0)

问题是,您正在为html属性ID创建具有相同值的隐藏输入:

<input type="hidden" id="id" value="<?php echo $row['id'] ?>" />

这不起作用,因为ID必须是唯一的。

修改您的PHP代码,为​​所有隐藏输入提供唯一ID和附加类名,以便能够使用jQuery选择它们。

while($row = mysql_fetch_assoc($result))
{
?>
<input type="hidden" class="hiddenId" id="id_<?php echo $row['id'] ?>" value="<?php echo $row['id'] ?>" />
<span id="<?php echo "defaultCountdown_" . $row['id'] ?>"></span>
<input type="hidden" id="<?php echo "endtime_" . $row['id']?>" value="<?php echo $row['end_time'] ?>" />
<?php
}

然后通过选择$(".hiddenId")来迭代所有隐藏的输入,获取ID,然后开始倒计时。

<script type="text/javascript">
$(function () {
    $(".hiddenId").each(function() {
        var id = $(this).val();
        var endDate = $("#endtime_" + id).val();
        $('#defaultCountdown_'+id).countdown({until: endDate});
    });
});
</script>