2015-10-20 41 views
0

我想問如何顯示輸出跨度。我總是變得空白,每當我提醒txtNumber時,我會在警報代碼中獲得「object html span element」。如何顯示它以跨度

<span id="displayQty"> number </span> 
<input id="btnAdd" type="button" value="+" onclick="add2()" /> 

腳本

function add2() { 
    var txtNumber = document.getElementById("displayQty"); 
    var number = parseInt(txtNumber.value) + 1; 
    txtNumber.value = number; 
    alert(displayQty.value); 
} 
+3

更改'txtNumber.value =編號;'爲'txtNumber.innerHTML =編號;'檢查[**演示**](https://jsfiddle.net/tusharj/s36gkt8s/) – Tushar

+0

我得到一個楠! @Tushar – Lemon

+0

Tushar的演示效果很好。 –

回答

1

我想提兩個問題。

1)當您使用txtNumber.value,時,它訪問與txtNumber變量關聯的元素的value屬性。但沒有價值屬性。如果要訪問span標記(這裏是一個字符串「number」)之間寫入的內容,則應該使用txtNumber.innerHTML.這將返回跨度內的所有HTML內容。

2)接下來的事情,你不能只是添加一個字符串到一個數字,一個對象到一個數字。我可以看到您已使用parseInt`,但它用於將具有整數簽名的字符串轉換爲整數數據類型。 (「5」轉換爲5)。

試試這個 -

<html> 
<body 


<input id="btnAdd" type="button" value="+" onclick="add2()" /> 
<span id="displayQty">1</span> 

<script> 

function add2() { 
    var txtNumber = document.getElementById("displayQty"); 
    var number = parseInt(txtNumber.innerHTML.trim()) + 1; 
    txtNumber.innerHTML = number; 

} 

</script> 

</body> 
</html> 

如果通過

var number = txtNumber.innerHTML + 1; 

更換var number = parseInt(txtNumber.innerHTML.trim()) + 1;將兩個數字加字符串和輸出是11。但用var number = txtNumber.innerHTML - (-1)取代它會把它們作爲整數添加。

+0

我得到一個Nan輸出。 – Lemon

+0

你使用了完整的代碼嗎?請記住在span標籤內,應該只有整數。在你的情況下,它是「數字」之前。數字+ 1是沒有意義的。就像香蕉+蘋果在添加的情況下是沒有意義的 – phositronax