json / jquery到第二个div返回NaN

时间:2011-10-13 19:07:19

标签: php jquery json nan

我使用php从mysql-server获取一行数据,然后将其编码为json数组。然后我使用以下PHP提取信息。奇怪的是,如果我将“vname”发送给它自己的div,我会得到“NaN”。如果我在第一个div中显示它,一切都很好。知道为什么吗?顺便说一句,我是否正确使用.html发送给div?我尝试过.appendTo和.text,结果相同。

<h3>Output: </h3>
<div id="output">Content1</div>
<div id="username">content2</div>

<script id="source" language="javascript" type="text/javascript">

$(function() {
    $.ajax({
        url: 'api.php',
        dataType: 'json',
        success: function(data) {
            var id = data[0];
            var vname = data[1];
            var message = data[2];
            var timestamp = data[3];

            $('#output').html(+id + timestamp + message);
            $('#username').html(+vname);
        }
    });
});

</script>

3 个答案:

答案 0 :(得分:4)

我会因为第一个+而猜测它。 Javascript试图不添加任何其他内容,这将输出NaN

 $('#output').html(id +timestamp +message );   
$('#username').html( vname );

在这种情况下text()可能更好用,因为你的字符串中没有任何html元素,但它确实无关紧要。

答案 1 :(得分:3)

+variable是将变量转换为数字的简写:Unary plus/minus (MDN)

var x = "5";
+x; //Gives you 5 as a number
x = "Hello";
+x; //Gives you NaN

您可以使用常规append

$('#output').append(id + timestamp + message);
$('#username').append(vname);

答案 2 :(得分:0)

$('#output').html(+id + timestamp + message);
$('#username').html(+vname);

这些可能是你的问题。变量前面的加号会引发错误。如果你试图连接(加在一起)现有的值和你从ajax的响应改变它是这样的事情:

$('#output').html($('#output').html() + id + timestamp + message);
$('#username').html($('#username').html + vname);