Javascript jQuery-在方法中使用参数调用函数

Javascript jQuery-在方法中使用参数调用函数,javascript,jquery,Javascript,Jquery,我想知道如何在方法中调用带有参数的函数。 我有2个函数,我想在单击由addCode()函数创建的列表元素时调用函数deleteCode()。 我确信解决方案非常简单,但我现在看不到。 非常感谢 function addCode(code) { $('#codeList').append('<li class="codeList" onClick="deleteCode(code);">' + code + '</li>'); } function deleteC

我想知道如何在方法中调用带有参数的函数。 我有2个函数,我想在单击由addCode()函数创建的列表元素时调用函数deleteCode()。 我确信解决方案非常简单,但我现在看不到。 非常感谢

function addCode(code) {
    $('#codeList').append('<li class="codeList" onClick="deleteCode(code);">' + code + '</li>');
}

function deleteCode(code) {
    $('#'+code).remove();
}
函数addCode(代码){
$(“#codeList”).append(“
  • “+code+”
  • ”); } 函数deleteCode(代码){ $('#'+代码).remove(); }
    低调行事,你就没事了

    function addCode(code) { 
        $('#codeList').append($('<li>', {
            'class':    'codeList',
            'text':     code,
            'click':    function(e) {
                 deleteCode(code);
            }
        }));
    }
    
    函数addCode(code){
    $(“#代码列表”)。追加($(“
  • ”{ “类”:“代码列表”, “文本”:代码, “单击”:函数(e){ 删除代码(code); } })); }

  • 参考:

    您可以这样做:

    function addCode(code) {
        $('<li class="codeList">' + code + '</li>').click(function() {
            deleteCode(code);
        }).appendTo('#codeList');
    }
    
    function deleteCode(code) {
        $('#'+code).remove();
    }
    
    …但代码不会生成具有该ID的元素。我假设您已在其他地方添加了该元素和其他代码,并且目标不是删除您使用此代码添加的
    li

    如果您确实想在单击时删除相同的
    li
    ,则完全不需要ID:

    function addCode(code) {
        $('<li class="codeList">' + code + '</li>').click(function() {
            $(this).remove(); // <== Changed here
        }).appendTo('#codeList');
    }
    
    函数addCode(代码){
    $('
  • '+code+'
  • ')。单击(函数(){
    $(this).remove();//通过代码而不是附加原始HTML创建
  • 元素

    function addCode(code) {
        // Create the <li>
        var newEl = document.createElement("li");
        newEl.className = "codeList";
    
        // Assign the click function via jquery's event helper.
        $(newEl).click(function(code) {
            // Call your deleteCode function and pass in the given parameter.
            deleteCode(code);
        });
    
        // Append the new element to the codeList node.
        $(#codeList).append(newEl);
    }
    
    函数addCode(代码){
    //创建
  • var newEl=document.createElement(“li”); newEl.className=“代码列表”; //通过jquery的事件助手分配click函数。 $(newEl)。单击(函数(代码){ //调用deleteCode函数并传入给定的参数。 删除代码(code); }); //将新元素附加到代码列表节点。 $(#代码列表).append(newEl); }
  • 您可以尝试:

    function addCode(code) {
    $('#codeList').append('<li class="codeList" onClick="deleteCode(' + code + ');">'+code+'</li>'); 
    }
    
    函数addCode(代码){
    $(“#codeList”).append(“
  • “+code+”
  • ”); }
    +1,我刚才键入的内容。@jAndy的回答是另一种很好的方式。@Downvoter,不说你为什么否决投票是不好的形式。我不是否决投票人,但我可能怀疑缺少会导致示例无法运行的控件ID可能是否决投票的原因。你不能
    $('#'+code)。删除();
    如果没有ID设置为要删除的代码。@Lazarus:谢谢。这个逻辑只是来自OP的代码。据我们所知,他正在添加一个ID元素,然后这个代码应该删除它,而他引用的代码中没有这个ID。(我们不知道点击
    li
    应该删除它——这可以更直接地完成!)在任何情况下,这都是不恰当的苛刻,尤其是没有评论。@t.J.Crowder:从样本中可以看出,意图似乎很清楚,但也承认这可能与这两种假设都有相同的延伸。
    function addCode(code) {
        // Create the <li>
        var newEl = document.createElement("li");
        newEl.className = "codeList";
    
        // Assign the click function via jquery's event helper.
        $(newEl).click(function(code) {
            // Call your deleteCode function and pass in the given parameter.
            deleteCode(code);
        });
    
        // Append the new element to the codeList node.
        $(#codeList).append(newEl);
    }
    
    function addCode(code) {
    $('#codeList').append('<li class="codeList" onClick="deleteCode(' + code + ');">'+code+'</li>'); 
    }