说我有以下HTML:
<div>Some text</div>
我想在每次用户点击退格键时从文本中删除最后一个字符。有没有办法从文本节点中删除一个字符?或者我必须做obj.innerText = 'Some tex'
之类的事情(即自己修剪最后一个字符并替换整个字符)。
答案 0 :(得分:0)
我能想到的最好的方法是使用substring
方法来处理字符串。
var s = obj.innerText
// Then On backspace event listener
s = s.substring(0, s.length - 1) // returns s without the last character in the original string.
obj.innerTezt(s) // set the inner HTML back to s
编辑:感谢Jonathan,Dennis对此答案的更正!
答案 1 :(得分:0)
var div = document.getElementById('my-div');
document.addEventListener('keydown',
function(e) {
if (e.which === 8) {
div.textContent = div.textContent.substring(0, div.textContent.length - 1);
}
}, false);
您可能还想支持IE8。在这种情况下,请使用document.attachEvent()和div.innerText。
答案 2 :(得分:0)
// Get the element
var el = document.queryString("...")
// Get the text contents
var text = el.firstChild
if (text.nodeType === Node.TEXT_NODE) {
// Delete the last character
text.deleteData(text.length - 1, 1)
}
有关deleteData