我需要一些关于删除文本区域中某个单词或短语的最佳方法的输入。我有一个名为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 = "";
}
}
}
我之前没想过的事情。
答案 0 :(得分: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");
var data = textarea.value;
textarea.value = textarea.value.replace(name.value, "");
}
<强> Working Fiddle 强>
答案 1 :(得分: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, "");
}
答案 2 :(得分: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(), ""));
});
});