我有一个id为display_main的textarea。 我需要这个退格功能来清除文本区域的最后一个字母或数字。 下面的代码不起作用。 请解释。
function backspacing(){
document.getElementById("display_main").substring(0, display_main.length - 1);
}
答案 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));
}