Вопрос:
Мне нужно немного ввести лучший способ удалить определенное слово или фразу в текстовой области. У меня есть входное поле с названием 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 = «»; } } }
То, что я пробовал раньше, не повезло.
Лучший ответ:
Не уверен, что вы пытаетесь сделать, но это правильный код: (в вашем коде много ошибок)
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, «»); }
Ответ №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
Это решение jQuery (я предоставляю его с тех пор, как вы отметили jQuery):
// 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(), «»)); }); });