2012-04-23 50 views
2

我有4個按鈕,值爲1 - 4,每次點擊一個數字時,我想連接按鈕的值,並將其顯示在#result中,但我對此應該如何處理感到困惑。此刻我創建了一個數組,然後將每個值都推送到數組中,然後將其轉換爲字符串,然後將其轉換爲數字,但我猜測這是完全錯誤的方法,任何人都可以建議我如何實現這一目標?我如何連接輸入值並將它們轉換爲總數?

的JavaScript

$(document).ready(function() { 

    var arr = [], value; 

    $('.num').on('click', function(e) { 
    value = $(this).val(); 
    arr.push(value); 
    var test = parseInt(arr.toString()); 
    console.log(test); 
    $('#result').text(test); 


    }); 

}); 

HTML

<form id="myForm"> 
    <input type="text" id="result" /> 
    <input type="button" class="num" value="1" /> 
    <input type="button" class="num" value="2" /> 
    <input type="button" class="num" value="3" /> 
    <input type="button" class="num" value="4" /> 
    </form> 

JSBIN - http://jsbin.com/exuwuz/2/edit

所以基本上打1和#result將顯示1命中2和#result將顯示12等等等等?

+2

可能重複:// stackoverflow.com/questions/1723716/how-to-concatenate-two-numbers-in-javascript) – 2012-04-23 09:56:35

回答

2

您的代碼可以簡化。嘗試:

$('input.num').click(
    function() { 
    $('#result')[0].value += this.value; 
    } 
);​ 

看到this jsfiddle

+0

爲什麼是[0]需要? – styler 2012-04-23 10:18:12

+0

檢索原始(未包裝)輸入元素。 – KooiInc 2012-04-23 10:19:22

0

如何連接並直接顯示它?

$(document).ready(function() { 
    $('.num').on('click', function(e) { 
    $('#result').val("" + $('#result').val() + $(this).val()); 
    }); 
}); 
+0

這會將它們添加爲數字。 – 2012-04-23 09:56:21

+0

它不會將它們添加爲數字 - 在Google Chrome中進行測試。但我決定添加「」來確保。 – Albert 2012-04-23 10:07:41

1

使用""的連接來防止這一數字從增加:

$(this).val("" + $(this).val() + value); 
1

array.toString()返回逗號分隔的陣列(例如1,2,3,4。)的值的列表。 parseInt然後將只解析第一個值(字符串的第一部分是一個正確的整數)。

爲了更好地實現你想要使用array.join()代替array.toString()的行爲,這將正好連接數組的內容:

var test = parseInt(arr.join('')); 
[如何連接在JavaScript中的兩個數字?(HTTP的
相關問題