Javascript: 如何从 div 或字符串中删除最后一个字符?

28

我有一个包含一串内容的div。该内容未存储在变量中,我想删除这个div中文本的最后一个字符。请帮忙。

更多信息:


我有一个文本字段,在输入文本后,文本以大号字体显示在一个div中。当用户按下退格键时,我希望删除该div中的最后一个字符。我主要使用jQuery来实现这一点。以下是我的代码:

$(document).ready(function(){
    $("#theInput").focus();   //theInput is the text field

    $('#theInput').on('keypress', printKeyPress);

    function printKeyPress(event)
    {
        //#mainn is the div to  hold the text
        $('#mainn').append(String.fromCharCode(event.keyCode));
        if(event.keyCode ==8)   //if backspace key, do below
        {
            $('#mainn').empty();  //my issue is located here...I think
        }
    }

});

我尝试过 $('#mainn').text.slice(0,-1);

我也尝试将 #theInput 的值存储在一个变量中并打印它,但那没有起作用。有什么想法吗?


为什么不直接将输入值放入div中呢? - Jarvan
只是想学习一切。 :) - xa.
好问题 - 我找到了许多关于如何从字符串中截取字符的答案。您用词恰当,让我可以很容易地通过搜索找到它。谢谢! - Jason
3个回答

61

7
不要不必要地调用 text() 两次:$('#mainn').text(function (i, t) {return t.slice(-1); }); - David Thomas
2
我已经找出了问题所在。由于某种原因,从文本框内执行时,BACKSPACE按键码无法注册。你建议的代码完美地运行,只是我的前置代码不起作用。谢谢:D - xa.
1
.slice(-1)将返回最后一个字符。问题是要“删除”最后一个字符... - nnnnnn

7

您确定只想删除最后一个字符吗?如果用户从单词中间按退格键会怎样?最好获取字段的值并替换div的html。在keyup事件上执行。

$("#div").html($("#input").val());

我曾经考虑过那个选项,但从中间回退甚至没有想过!谢谢你的建议:D - xa.

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接