如何显示它以跨度

问题描述:

我想问如何显示输出跨度。我总是变得空白,每当我提醒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)当您使用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