环境: OS X 10.12.6,Safari 11.0.1
我有一个令人满意的div,我使用onkeyup
来显示页面上其他位置的div中div的字符数。在div onkeyup=fn()
调用的函数中,我有这个:
var oj = document.getElementById("mydiv");
var co = oj.innerText;
var le = co.length.toString();
var sp = document.getElementById("myspan");
sp.innerHTML = le;
所以说我在div中键入了5个字符,例如abcde
;我得到了五个 - 正如你所期望的那样。当我退格时,它会正确倒计时:
4, 3, 2, 1...
但是当我在最后一个字符a
上退格时,而不是从一个字符变为零...结果保持为1。我明白这一点:
+-------- // Everything here and previous is correct
| +----- // Still correct, there's still an a in there
| | +-- // This is incorrect - the div is now empty
| | |
5, 4, 3, 2, 1, 1
a a a a a
b b b b
c c c
d d
e
同样,当我再次键入abcde
时,计数保持为1为空,仍然保持为a
的一个,然后 继续......
2, 3, 4, 5
...从而显示两次:一次是空的,一次是div中实际上有一个字符:
+-------- // div is empty here - this is wrong
| +----- // div actually has one character here
| | +-- // and this and following are all correct
| | |
1, 1, 2, 3, 4, 5
a a a a a
b b b b
c c c
d d
e
javascript控制台中没有错误,过去的代码肯定在执行,所以Javascript机器并没有被呛到。
我希望得到零。为什么我得到这个结果?