使用子字符串清除javascript中字符串的最后一个字母

时间:2014-07-29 16:36:13

标签: javascript html string substring

我有一个id为display_main的textarea。 我需要这个退格功能来清除文本区域的最后一个字母或数字。 下面的代码不起作用。 请解释。

function backspacing(){ 
    document.getElementById("display_main").substring(0, display_main.length - 1);
}

5 个答案:

答案 0 :(得分:2)

document.getElementById返回一个元素。元素不是字符串,因此使用它们的子字符串是没有意义的。您需要使用其value属性,该属性是textarea(以及许多其他输入元素)中包含的文本:

function backspacing() {
    var displayMain = document.getElementById("display_main");
    displayMain.value.substring(0, displayMain.value.length - 1)
}

此外,substring不会修改它所调用的字符串;字符串是不可变的。它返回一个新字符串,您需要将其分配给某个字符串:

function backspacing() {
    var displayMain = document.getElementById("display_main");
    displayMain.value = displayMain.value.substring(0, displayMain.value.length - 1);
}

答案 1 :(得分:1)

因为你试图对元素进行子串,而不是元素的值

var element = document.getElementById("display_main");
element.value = element.value.substring(0, element.value.length - 1);

答案 2 :(得分:0)

应该是:

function backspacing(){ 
    var textarea = document.getElementById("display_main");
    textarea.value = textarea.value.substring(0, textarea.value.length - 1);
}

答案 3 :(得分:0)

获取第一个文本区域值并应用子字符串函数。

 textAreaValue = document.getElementById("display_main").value

然后在值上应用子字符串函数,然后再次将修改值设置为textarea。

答案 4 :(得分:0)

您可以清除文本框的最后一个字符,并使用此代码将其分配给自己

function backspacing() {
        var textbox = document.getElementById("display_main");
        textbox.value = textbox.value.slice(0,-1) ;
}

或者如果你加载了jQuery库,你可以使用:

function backspacing() {
        $("#display_main").val($("#display_main").val().slice(0,-1));
}