我使用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>
答案 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);