在div中替换字符串

时间:2011-09-17 18:15:10

标签: javascript jquery replace

我想替换#TextArea1中的特定字符串。单击按钮时会发生这种情况。

使用以下代码尝试使用,但无法使其正常工作:

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

替换div中的单词的正确语法是什么?

4 个答案:

答案 0 :(得分:14)

将函数传递给返回您想要设置的值的text()[docs]方法:

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

功能参数如下:

  • i是迭代中当前元素的索引
  • txt是当前元素的当前文本内容

从函数返回的值将被设置为当前元素的新值。

答案 1 :(得分:5)

你很亲密,试试这个:

$('#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,"--"));

答案 2 :(得分:4)

您还设置了文字:

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 :(得分:3)

replace()创建一个新字符串并将其返回,因此它会变得稀薄。您需要获取新字符串并将其发送回文本框。这个jsfiddle显示了如何。

<textarea id="t">
    hello
</textarea>
var text = $('#t').text();
text = text.replace('h', 'b');
$('#t').text(text);