Замена строки в div - PullRequest
       4

Замена строки в div

7 голосов
/ 17 сентября 2011

Я хочу заменить определенную строку в #TextArea1. Это происходит при нажатии кнопки.

Пробуем это с кодом ниже, но не можем заставить его работать:

$('#TextArea1').text().replace("wef","--");

Каков правильный синтаксис для замены слова в div?

Ответы [ 4 ]

14 голосов
/ 17 сентября 2011

Передайте функцию в метод text() [документы] , который возвращает значение, которое вы хотите установить:

$('#TextArea1').text(function( i, txt ) { 
    return txt.replace("wef","--"); 
});

Параметры функции следующие:

  • i - индекс текущего элемента в итерации
  • txt - текущее текстовое содержимое текущего элемента

Значение, возвращаемое функцией, будет установлено как новое значение для текущего элемента.

5 голосов
/ 17 сентября 2011

Вы близки, попробуйте это:

$('#TextArea1').text($('#TextArea1').text().replace(/wef/g,"--"));

Или оптимизированный

var $textarea = $('#TextArea1');
$textarea.text($textarea.text().replace(/wef/g,"--"));

Если это элемент textarea, вы должны сделать:

var $textarea = $('#TextArea1');
$textarea.val($textarea.val().replace(/wef/g,"--"));
4 голосов
/ 17 сентября 2011

Вы также установили текст:

var text = $('#TextArea1').text().replace("wef","--");
$('#TextArea1').text(text);

или, используя функцию:

$('#TextArea1').text(function(index, text) {
  return text.replace("wef","--");
});

Примечание: если это <textarea>, используйте val() вместоtext().

var text = $('#TextArea1').val().replace("wef","--");
$('#TextArea1').val(text);
3 голосов
/ 17 сентября 2011

replace() создает новую строку и возвращает ее, поэтому она возвращается в пустоту. Вам нужно захватить новую строку и отправить ее обратно в текстовое поле. Это jsfiddle показывает, как.

<textarea id="t">
    hello
</textarea>
var text = $('#t').text();
text = text.replace('h', 'b');
$('#t').text(text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...