【问题标题】:json/jquery to second div returns NaNjson/jquery 到第二个 div 返回 NaN
【发布时间】:2011-12-07 05:35:49
【问题描述】:

我正在使用 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>

【问题讨论】:

  • 最后一行的 vname 之前有一个加号 (+) 是错字吗?以及所有其他变量名称?
  • 哪些 data[n] 元素应该是数字,哪些应该是字符串?

标签: php jquery json nan


【解决方案1】:

我猜是因为第一个+。 Javascript 试图向所有其他内容添加任何内容,这将输出 NaN

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

在这种情况下,text() 可能更好用,因为您的字符串中没有任何 html 元素,但这并不重要。

【讨论】:

  • 你绝对正确。我是新手(惊喜) - 所以我想我已经知道 + 在将内容更新到特定 div 时添加了变量?谢谢!
  • + 会将整数和字符串加在一起,但是由于您有 *blank* + javascript 分配的是 NaN,因为它需要添加一些东西来代替空白。你知道NaN代表Not a Number
  • 感谢您的澄清和帮助!你每天都能学到一些东西,这是一种奢侈!
  • 这就是我喜欢它的原因!祝一切顺利
  • @locrizak 这不是“添加空白” - 它是一元加号运算符。我的答案中有指向 MDN 文章的链接。
【解决方案2】:
$('#output').html(+id + timestamp + message);
$('#username').html(+vname);

这些可能是你的问题。变量前面的加号会引发错误。如果您尝试连接(相加)现有值,并且您的 ajax 响应将其更改为以下内容:

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

【讨论】:

    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多