2015-06-09 4 views
2

У меня есть HTML:найти и заменить текст JQuery

<input id="replace"></input> 
<div id="replacepls">Go!</div> 
<br> 
<textarea id="text" name="text"></textarea> 

и некоторые JS код там:

$('textarea[name=text]').val('Hello my dear friend, i love u'); 

$('#replacepls').click(function(){ 

    var news = $('#replace').val();  

    var text = $(this).text(); 
    $(this).text(text.replace('friend', news)); 

}); 

http://jsfiddle.net/j1ksrdcp/

Как я могу заменить слово "друг" в текстовое поле в другой слово от ввода на кнопку нажмите? Почему мой код не работает? Спасибо.

+2

'this' относится к элементу сНу, а не текстовое поле элемент –

+0

HTTP://jsfiddle.net/tusharj/j1ksrdcp/2/ – Tushar

ответ

1

Вы должны использовать val() вместо text(), а также я упростил код

$('#replacepls').click(function() { 
    $("#text").val(function (i, val) { 
     return val.replace('friend', $('#replace').val()) 
    }); 

}) 

Fiddle

+0

Этот код лучше. Спасибо. – Arriba

+0

@Arriba Добро пожаловать :) – Balachandran

0

Заменить $(this).text(text.replace('friend', news));

С:

$(this).text($("#text").val().replace('friend', news)); 
2

Вы должны использовать Val() вместо текста() с textarea, $ (это) .text() даст вам текст div с текстом Перейти но не текст в textarea

Live Demo

$('textarea[name=text]').val('Hello my dear friend, i love u'); 
$('#replacepls').click(function() { 
    var news = $('#replace').val(); 
    var text = $('#text').val(); 
    $('#text').val(text.replace('friend', news)); 
}); 
Смежные вопросы