javascript
  • jquery
  • division
  • 2013-03-24 142 views 2 likes 
    2

    我想分开变量number100并得到NaN。我是jQuery的新手,任何人都可以帮助我理解我做错了什么?司生产NaN

    $.each(data.products, function (i, data) { 
    
        var div_data = "<p>" + data.title + "<br/>" + data.description + "</p>"; 
    
        div_data += '<img src="' + data.imageUrl + '" title="Loading..." alt="Loading...">'; 
        div_data += '<p><a href="' + data.url + '">Buy</a></p>'; 
    
        $(div_data).appendTo("#testjson"); 
    
        number = '<div class="number">' + data.price + '</div>'; 
        $('#myElement').text((number/100)); 
    
    }); 
    
    +1

    我看不出有任何的JSON在你的代码。如果你指的是'data',那看起来是一个普通的对象。 JSON是信息的文本表示,如XML,YAML或CSV。 – 2013-03-24 15:22:22

    回答

    4

    首先你设置number为一个字符串:

    number = '<div class="number">'+ data.price + '</div>'; 
    

    然后你将这个字符串由100

    在JavaScript导致NaN这是短期的Not a Number。这是指定in the spec

    一个可能的解决办法是除以100的数字本身,而不是HTML字符串,例如:

    var number = data.price/100; 
    $('#myElement').text(number); 
    

    嵌套式div这不会附加到#myElement虽然。

    +0

    谢谢,明白了,那么如何从我的JSON数据中获取数字而不是字符串呢? – leanda 2013-03-24 15:20:41

    +1

    @ user2204755:这不是JSON,'data'是一个普通对象,我认为我们可以假设'data.price'是一个数字。如果它是数字字符串,分区会自动将其转换为数字。 – 2013-03-24 15:21:53

    +0

    您的数据不是JSON,它是一个JavaScript对象,JSON是一种数据交换格式,您通常在其中将JavaScript对象序列化为字符串。 data.price似乎是你正在寻找的。 – 2013-03-24 15:22:00

    2

    你可以像下面这样做

    number = '<div class="number">' + (data.price/100) + '</div>'; 
        $('#myElement').text((number)); 
    

    这是你在的.text)做什么(

    ('<div class="number">' + (data.price/100) + '</div>')/100 
    
    相关问题