javascript - 替换文本区域中的一个特定单词

标签 javascript hashtag

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

enter image description here

到目前为止,一切都很好,但是当我点击用户的 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> 

我想获取它的用户名,并将其直接放在文本区域中的正确位置...

我做了什么:

我获取文本区域中的当前单词(上一个屏幕截图中的 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(); 正在隐藏下拉菜单。

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

提前致谢

最佳答案

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

或者您可以 take a look here 并了解如何获取当前光标位置。之后您将获得要替换的确切单词。

关于javascript - 替换文本区域中的一个特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530294/

相关文章:

javascript - 更改阵列中的多个图像源

php - Twitter Phirehose 主题标签搜索不起作用

url - Angular2 路由 - 使用 LocationStrategy 添加主题标签不起作用?

javascript - 正则表达式匹配主题标签未包含在 html 标签中

php - Instagram API 检索哈希媒体 - 此端点已弃用 next_max_id 和 min_id;使用 min_tag_id 和 max_tag_id 代替

javascript - Bootstrap 多选 : How to change filterBehavior from value to text

javascript - 在 JavaScript 中实现具有容差的二分搜索?

javascript - 在 jquery 对象集合上使用 underscore.js 列表函数

javascript - jQuery Mobile,使用查询字符串进行导航

anchor - href ="#"转到页面顶部 - 预防?