1

「@」を入力すると、知っている可能性のあるユーザーのリストが表示されるように、ハッシュタグとユーザー メンションの入力を作成しました。

ここに画像の説明を入力

この時点まではすべて問題ありませんが、ユーザーの a 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(); ドロップダウンを隠しています。

現在の単語のみを置き換える方法を知っている人はいますか?

前もって感謝します

4

1 に答える 1