为什么这个Javascript函数不起作用

Mr.*_*mee 1 javascript jquery

我在这里要做的是创建一个功能,为自定义选择元素执行所有功能.所以我创建了一个函数,它接受函数本身定义的三个参数(更多细节见下面的代码).我正在尝试完成以下操作:我希望参数是各种元素的ID(例如包装器div),我希望在函数中删除这些参数.我的代码如下.非常感谢

function createList(ParentDivID,SelectMenuID,ListMenuID) {
            $('#' + ParentDivID + "'");
            $('#' + SelectMenuID + "'");
            $('#' + ListMenuID + "'");
            var options = $("#" + SelectMenuID +'"' ).find("option");

                $(options).each(function(){
                    $(ul).append('<li>' + 
                    $(this).text() + '<span class="value">' + 
                    $(this).val() + '</span></li>'); 
                    });
                var ul = '<ul id="' + ListMenuID + "></ul>";
                $('#' + ParentDivID + "'").append(ul).end().children('#' + ListMenuID + "'").hide().click(function(){$(ul).slideToggle();});
                $("#" + SelectMenuID + '"').hide();
        }
        createList(fancySelectLarge,selectWalkerType,walkerTypeLi);     
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 7

猜测,可能是因为你的id不以引号字符结尾(在HTML 4中的id中不允许),但是你将它们附加到你用jQuery搜索的字符串.


Jos*_*ein 5

你只需要做这样的选择器

$('#' + ParentDivID);
Run Code Online (Sandbox Code Playgroud)

你还需要停止交换's和s,因为它会导致你错过一些收尾报价

    function createList(ParentDivID,SelectMenuID,ListMenuID) {
        var options = $('#' + SelectMenuID).find('option');

        $(options).each(function(){
            $(ul).append('<li>' + 
                $(this).text() + '<span class="value">' + 
                $(this).val() + '</span></li>'); 
        });

        var ul = '<ul id="' + ListMenuID + '"></ul>';

        $('#' + ParentDivID).append(ul).end().children('#' + ListMenuID).hide().click(function(){$(ul).slideToggle();});
        $('#' + SelectMenuID).hide();
    }

    createList(fancySelectLarge,selectWalkerType,walkerTypeLi); `
Run Code Online (Sandbox Code Playgroud)