Javascript 如何通过<;李>;不替换文本框上的文本的文本

Javascript 如何通过<;李>;不替换文本框上的文本的文本,javascript,c#,jquery,html,Javascript,C#,Jquery,Html,我今天有学校作业。我已经可以将表情符号传递给文本框,但如果单击,它将替换先前的表情符号或文本框上的文本。我想知道如果我点击并能够保留输入的表情符号或文本,如何不替换文本框文本。对不起,如果你们不懂的话,我的英语很差 $(document).ready(function () { $("ul").hide(); $("input.btnemoji").click(function () { $("ul").toggle(); $("ul.emoji

我今天有学校作业。我已经可以将表情符号传递给文本框,但如果单击,它将替换先前的表情符号或文本框上的文本。我想知道如果我点击并能够保留输入的表情符号或文本,如何不替换文本框文本。对不起,如果你们不懂的话,我的英语很差

$(document).ready(function () {
    $("ul").hide();
    $("input.btnemoji").click(function () {
        $("ul").toggle();
        $("ul.emoji li").click(function () {
            $("#ToSend").val($(this).text());
        });
    });
});


  • 要添加到现有值,您需要将其追加到
    输入中的
    val()
    ,而不是每次都替换它。为此,您可以将一个函数传递给
    val()
    方法,该方法为您处理追加操作,如下所示:

    $(文档).ready(函数(){
    $(“ul”).hide();
    $(“input.btnemoji”)。单击(函数(){
    $(“ul”).toggle();
    });
    $(“ul.emoji li”)。单击(函数(){
    var$li=$(本);
    $(“#ToSend”).val(函数(i,v){
    返回v+$li.text();
    });
    });
    });
    
    
    

    • 这是最短的方法。您只需使用以下功能:

      $("#ToSend").val($("#ToSend").val()+$(this).text());
      
      $(文档).ready(函数(){
      $(“ul”).hide();
      $(“input.btnemoji”)。单击(函数(){
      $(“ul”).toggle();
      });
      $(“ul.emoji li”)。单击(函数(){
      $(“#ToSend”).val($(“#ToSend”).val()+$(this.text());
      });
      });
      
      
      

      • 用户附加函数而不使用

        使用
        $(“#ToSend”).val($(“#ToSend”).val()+$(this.text())
        当您使用
        .val(value)
        它将旧值替换为新值时,您只需存储旧值并使用newDownvote进行concat操作,但这不起作用。不能将
        append()
        附加到
        输入
        元素的
        属性几次切换菜单,然后单击其中一个
        li
        。您将看到您单击的表情符号被添加了N次
        $("#ToSend").append($(this).text());