1

我创建了一个主题标签和用户提及输入,因此当您键入“@”时,它会显示您可能认识的用户列表。

在此处输入图像描述

至此,一切都很好,但是当我单击用户时,一个 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”存在于文本区域中的另一个单词中,它也会替换它。

这是我的 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(); 正在隐藏下拉菜单。

有谁知道如何只替换当前单词?

提前致谢

4

1 回答 1

1

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

或者你可以看看这里,看看如何获​​取当前光标位置。之后您将拥有要替换的确切单词。

于 2013-08-30T10:15:33.393 回答