错误:firefox在元素列表后给我“缺失”

时间:2012-06-15 07:07:59

标签: php javascript jquery ajax

我要做的是使用ajax从另一个php文件中获取时间。

因此javascript代码如下所示:

var timeNow = setInterval(
    $.ajax({
        url: "process/time.php",
        success: function(msg) {
            $('#time').text(msg);
        }
    }), 1000);

这是发布到的PHP代码。

<?php echo gmdate('h:i:s A', time() + 8 * 3600);?>

有什么想法吗?

5 个答案:

答案 0 :(得分:6)

可以使用Function对象以及要执行的代码字符串调用

setInterval$.ajax返回一个jqXHR对象,该对象已转换为字符串"[object Object]"。然后该字符串作为代码执行,并引发错误。

您希望将$.ajax调用包装在函数中:

var timeNow = setInterval(function() {
    $.ajax({
        url:"process/time.php",
        success: function(msg) {$('#time').text(msg);}
    });
}, 1000);

答案 1 :(得分:2)

<?php 
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
   strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){

    header('Content-Type: application/json');
    echo json_encode(array('server_time'=>gmdate('h:i:s A', time() + 8 * 3600)));
    die;    
}
?>

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
function polltime(){
    setTimeout(function(){
        $.ajax({ url: "./get_time.php", cache: false,
        success: function(data){
            $("#time").replaceWith("<p id=\"time\">"+data.server_time+"</p>");
            polltime();
        }, dataType: "json"});
    }, 1000);
}
$(document).ready(function(){
    polltime();
});
</script>


<p id="time"><?php echo gmdate('h:i:s A', time() + 8 * 3600);?></p>

答案 2 :(得分:1)

var timeNow = setInterval(
    function() {  // you missed function within setInterval()
    $.ajax({
        url: "process/time.php",
        success: function(msg) {
            $('#time').text(msg);
        }
    }, 1000);

答案 3 :(得分:1)

更简单的解决方案如下:

var timeNow = setInterval(
    function() {
    $("#time").load("process/time.php");
    }, 1000);

参见jQuery load()方法;它专为此类事物而设计。

答案 4 :(得分:-2)

var timeNow = setInterval(
    $.ajax({
        url: "process/time.php",
        success: function(msg) {
            $('#time').html(msg); //you have to use html instead
        }
    }), 1000);

创建一个函数并将代码放在其上并在<body onload"function_name();">

上调用它