假设正则表达式是最好的方法,我想选择第一个单词:
<div class="name">Bob Marley</div>
并用它来替换这个div标签中的第二个单词:
<div class="message">Hey friend,how are you?</div>
所以最终结果等于:
<div class="message">Hey Bob,how are you?</div>
更新
这是我实际代码的混合体.我注意到,当它运行时,它只是将jquery文本放入我的文本区域而不是实际执行该功能.这可能是因为我从输入中获取了val()而不是div标签中的文本,如上面的例子所示.
$(".me_signup .name").bind("mouseup keyup",function(){ $(this).siblings('.message').text(function(i,txt) { var name = $(this).val().split(' ')[0]; return txt.replace('friend',name); }); });
这将创建一个文本区域,其中包含此文本
function (i,txt) { var name = $(this).val().split(" ")[0]; return txt.replace("friend",name); }
解决方法
你应该能够没有正则表达式.
$('div.message').text(function(i,txt) { var name = $('div.name').text().split(' ')[ 0 ]; return txt.replace( 'friend',name ); });
如果名称前面可能存在一些前导空格,则首先使用jQuery’s $.trim()
method.
示例:http://jsfiddle.net/2R5kA/1/
$('div.message').text(function(i,txt) { var name = $.trim($('div.name').text()).split(' ')[0]; return txt.replace( 'friend',name ); });