我创建了一个主题标签和用户提及输入,因此当您键入“@”时,它会显示您可能认识的用户列表。
至此,一切都很好,但是当我单击用户时,一个 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();
正在隐藏下拉菜单。
有谁知道如何只替换当前单词?
提前致谢