1

我需要一些关于删除文本区域中某个单词或短语的最佳方法的输入。我有一个名为input. 我想在该区域中搜索放入名为的表单字段中的单词,name然后从input. 我尝试过的代码都不起作用,而且大多数搜索结果都无关紧要。

function delete() {
    var name = document.getElementById("name").value;
    var textarea = document.getElementById("input").value;
    var data = textarea.length;
    for (var i = 0; i < data.length; i++) {
        if (textarea.substr(i, data) == name) {
            textarea.value = "";
        }
    }
}

我之前尝试过的没有运气。

4

3 回答 3

4

不确定您要做什么,但这是正确的代码:(您的代码中有很多错误

function deleteValue() {  //instead of "delete"
    var name = document.getElementById("name");
    var textarea = document.getElementById("result");  //intead of "input"
    var data = textarea.value;
    for (var i = 0; i < data.length; i++) {
        if (data.substr(i, data) == name.value) {
            textarea.value = "";
        }
    }
}

需要考虑的几点:

  • 将您的文本输入名称从更改input为其他名称,因为它是tag name.
  • 您不能有函数名delete,因为它是 javascript 中的保留字。使用其他类似的东西deleteValue

更新

我想这就是你要找的..

function deleteValue() {
    var name = document.getElementById("name");
    var textarea = document.getElementById("result");
    textarea.value = textarea.value.replace(name.value, "");
}

工作小提琴

于 2013-07-05T08:02:56.290 回答
1

您可以将replaceAll函数添加到 String 对象。如果要删除所有出现的特定文本。

(function() {   
    if (!String.replaceAll) {
        String.prototype.replaceAll = function replaceAll(replace, value) {
            return this.replace(new RegExp(replace, 'g'), value);
        };
}
}());

修改delete函数应该是这样的:

function deleteValue() {
    var name = document.getElementById('name');
    var textarea = document.getElementById('result');
    var data = textarea.value;
    textarea.value = textarea.value.replaceAll(name.value, "");
} 
于 2013-07-05T09:19:24.917 回答
0

这是 jQuery 解决方案(我提供了它,因为您标记了 jQuery):

jsFiddle

// to execute code when the page is entierly loaded
$(document).ready(function(){
    // click event on the button
    $('#myButton').click(function(){
        // get the content of the #result textarea
        val = $('#result').val();
        // remove all occurence of content of #name in #result
        $('#result').val(val.replace($('#name').val(), ""));
    });
});
于 2013-07-05T09:44:53.960 回答