繁体   English   中英

如何使像参数一样的elementid的javascript函数?

[英]How to make a javascript function with elementid like argument?

我有一个DevExpress Mvc令牌扩展,用户将在其中插入多个项目。

我使用javascript将项目发送到控制器,效果很好。

我的函数如下所示:

 $(function() {
    $("#btnSave").click(function () {
        var name = window.ComboBox.GetValue();
        var i;

        var team = new Array();
        var tokens = window.tokenBox.GetTokenCollection();
        for (i = 0; i < tokens.length; i++) {
            team.push(tokens[i]);
        }



        var s = new Array();
        var ss = window.tokenBox2.GetTokenCollection();
        for (i = 0; i < ss.length; i++) {
            s.push(ss[i]);
        }


        var w = new Array();
        var ww = window.tokenBox3.GetTokenCollection();
        for (i = 0; i < ww.length; i++) {
            w.push(ww[i]);
        }

        var o = new Array();
        var oo = window.tokenBox4.GetTokenCollection();
        for (i = 0; i < oo.length; i++) {
            o.push(oo[i]);
        }

        var t = new Array();
        var tt = window.tokenBox5.GetTokenCollection();
        for (i = 0; i < tt.length; i++) {
            t.push(tt[i]);
        }


        $.ajax({
            type: "post",
            url: '@Url.Action("Action","Controller")',
            data: { name:name, team:team, s:s, o:o, w:w, t:t },
            beforeSend: function () {
                window.loadingPanel.Show();
            },
            success: function (response) {
                $("#mainAjax").html(response);
                window.loadingPanel.Hide();
            }
        });
    });
});

我想使用一个函数,从令牌中获取项目并将它们放入数组中(而不是上面的重复代码),如下所示:

function GetTokenItems(token) {
    var list = new Array();
    var el = document.getElementsById(token);
    var tokens = el.GetTokenCollection();
    for (var i = 0; i < tokens.length; i++) {
        list.push(tokens[i]);
    }
 return list;
    };

该功能不起作用,错误提示:

未捕获的TypeError:document.getElementsById不是函数

如何在函数中传递tokenBok之类的参数的ID,或者/并且我的函数出了什么问题?

**Edit:**

我做了更正document.getElementById ,现在我得到了错误:

未捕获的TypeError:el.GetTokenCollection不是函数

应该是document.getElementById(id)

通过元素ID返回对该元素的引用; ID是可以用来识别元素的字符串; 可以使用HTML中的id属性或通过脚本来建立。

document.getElementById(...)
//                ^ without s

我找到了问题的答案,也许会对其他人有所帮助!

对于Devexpress mvc扩展名足以使用扩展名之类的参数,而无需使用document.getElementById来查找扩展名,因此我的功能可以这样工作:

 function GetTokenItems(token) {
    var list = new Array();

    var tokens = token.GetTokenCollection();
    for (var i = 0; i < tokens.length; i++) {
        list.push(tokens[i]);
    }
    return list;
};

现在我可以像这样调用此函数:

var team=GetTokenItems(tokenBox); 并且正在工作!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM