【发布时间】:2011-11-19 09:19:49
【问题描述】:
我想替换#TextArea1 中的特定字符串。单击按钮时会发生这种情况。
用下面的代码试了下,还是不行:
$('#TextArea1').text().replace("wef","--");
替换div中的单词的正确语法是什么?
【问题讨论】:
标签: javascript jquery replace
我想替换#TextArea1 中的特定字符串。单击按钮时会发生这种情况。
用下面的代码试了下,还是不行:
$('#TextArea1').text().replace("wef","--");
替换div中的单词的正确语法是什么?
【问题讨论】:
标签: javascript jquery replace
将一个函数传递给text()[docs] 方法,该方法返回您要设置的值:
$('#TextArea1').text(function( i, txt ) {
return txt.replace("wef","--");
});
函数参数如下:
i是迭代中当前元素的索引txt是当前元素的当前文本内容从函数返回的值将被设置为当前元素的新值。
【讨论】:
你很接近,试试这个:
$('#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,"--"));
【讨论】:
您还设置了文本:
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);
【讨论】:
replace() 创建一个新字符串并返回它,所以它会被归还到稀薄的空气中。您需要获取新字符串并将其发送回文本框。这个jsfiddle 展示了如何。
<textarea id="t">
hello
</textarea>
var text = $('#t').text();
text = text.replace('h', 'b');
$('#t').text(text);
【讨论】: