因为value
是HTMLInputElement属性和TD
元素不是HTMLInputElement
但HTMLTableCellElement
,因此不存在该属性和:
undefined + 1; // NaN - Not a Number
你基本上可以使用和你一样的innerHTML
属性T中的内容也得到它:
function plus() {
// no need to execute `getElementById` twice
var td = document.getElementById("run");
td.innerHTML = +td.innerHTML + 1;
}
要转换的号码我用了unary plus operator值。你也可以检查它是否在使用前它的NaN
,是这样的:
function plus() {
var td = document.getElementById("run");
var value = +td.innerHTML || 0;
td.innerHTML = value + 1;
}
在这种情况下,如果是NaN
(或0,但在这种情况下,它的身份)将设置为0,并且计数将启动1
没有提供任何错误。
此外,我会说,它可以更好地使用textContent财产支持,但然后代码将处理所有浏览器的一些更复杂(例如在一些IE版本中,您需要使用innerText
代替),并且在大多数情况下,innerHTML
可能会很好。
也许另一个你可以做到这一点:http://jsfiddle.net/userdude/UUdV8/ –