2011-04-18 48 views
4

我有一些數字ID的元素。每個ID都在一個單獨的範圍內。我可以將該值作爲數字來增加嗎?我試圖爲文本,但它似乎沒有工作...我可以通過數字獲得價值嗎?

var lastVal = $(".myID:last").text(); 
var newVal = lastVal++; 

Value <span class="myID">5</span> 

回答

1

當你得到一個元素的.text(),jQuery的返回一個字符串。你不能增加一個字符串,所以你必須使用parseInt()功能使它成爲整數

var lastVal = parseInt($(".myID:last").text(), 10); 

現在lastVal包含一個整數。

+0

你需要一個基數,如果該值爲'077'。 – SLaks 2011-04-18 19:53:06

+0

基數是否默認爲「10」?哦,我會包括它。 – Blender 2011-04-18 19:54:01

+0

不完全。 'parseInt('0777')'返回'511'。 – SLaks 2011-04-18 20:59:27

1

使用parseInt函數將其從字符串轉換爲數字:

var newVal = parseInt(lastVal, 10); 
newVal++; 

的第二個參數parseIntradix,是可選的,用於指定輸入字符串的基礎。未能提供該參數導致要根據下面的規則自動確定的基礎:如果字符串以「0x」,基座被假定爲16

  • 如果字符串開頭「開頭

    • 0" 時,鹼被假定爲8
    • 如果字符串與任何其他開始,基體被假定爲10
  • +1

    你不能在++上運行一個右值。 – kennytm 2011-04-18 19:52:13

    +1

    你不能'++'返回值。另外,你需要一個基數。 – SLaks 2011-04-18 19:52:30

    9

    將字符串轉換爲一個數在JS像這樣:

    var num = parseInt(lastVal, 10); 
    
    +4

    +1爲包含parseInt的基數... – Chandu 2011-04-18 19:51:39

    +0

    應該得到-1命名返回的整數「str」:) – James 2011-04-18 22:00:34

    +0

    @James heh,oops,fixed。 – Emmett 2011-04-18 22:02:16

    1

    要將字符串轉換爲數字,可以使用parseInt函數。但要真正改變它(如果我正確理解您的意思),你想做的事:

    var elem = $('.myID'); 
    var num = parseInt(elem.text()); 
    elem.text(num+1) 
    
    // <span class="myID">5</span> 
    
    1

    夫婦這邊的事情:

    $('#btn').click(function(){ 
        var lastVal = parseInt($("#txt").val(), 10); 
        var newVal = ++lastVal; 
    }) 
    
    1. 您可以使用parseInt函數來從數值文字
    2. 嘗試預先遞增反對張貼在這裏。使用後增量,您將lastVal的值分配給newVal,然後遞增(不會被添加)。使用預增量,您可以在賦值之前修改值lastVal(這是您要做的)。

    Sample here

    相關問題