javascript
  • jquery
  • division
  • 2013-03-24 166 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 
    
    相關問題