我创建了一个主题标签和用户提及输入,这样当您输入“@”时,它会显示您可能认识的用户列表。
到目前为止,一切都很好,但是当我点击用户的 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/