替换textarea中的一个特定单词

时间:2013-08-30 10:06:45

标签: javascript hashtag

我创建了一个井号和用户提及输入,因此当您输入“@”时,它会显示您可能知道的用户列表。

enter image description here

到目前为止,一切都是Okey,但当我点击用户一个href标签时:

    <a href="javascript:void(0);">
       <span style="background:url('/uploads/user_00010/thumbs/32x32_d30302e9-07d7-8fd7-dba0-1a217c9c5534.jpg') no-repeat" class="tny_avatar"></span>
<span class="username">Sara</span>                
    <span style="height:0px;display:block;" class="clr"></span>
</a> 

我想取其用户名,并将其直接放在textarea中的正确位置......

我做了什么:

我在textarea中获取当前单词(上一个屏幕截图中的currentWord ='sa')...并将此当前单词替换为列表中用户名范围中的单词。

这个解决方案的问题在于,如果子字符串“sa”存在于textarea中的另一个单词中,它也将替换它。

这是我的js代码:

$('.suggest ul li a').live('click', function () {
    var text = $('.quote textarea').val();

    var newVal = $(this).find('.username').html();

    text = text.replace(lastWord, '@' + newVal);

    $('.advText').val(text);

    $('.advText').trigger('keyup');

    $('.tglst').hide();

});

lastWord是当前单词,其中消隐光标指向;这是一个全局的js变量。

trigger('keyup'),只是触发一些函数创建一个包含不同颜色(蓝色)的标签和提及的div。这就是它的全部内容。

$('.tglst').hide();隐藏了下拉列表。

有人知道如何更换当前单词吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

正如我的评论中所提到的,你可以替换最后一个单词,这很可能是你当前正在输入的单词。

或者你可以 take a look here ,看看如何获​​取当前光标位置。之后你会有确切的词来替换。