【问题标题】:How to make a javascript function with elementid like argument?如何使用类似元素的参数制作一个javascript函数?
【发布时间】:2016-02-18 21:54:08
【问题描述】:

我有一个 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;
    };

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

未捕获的类型错误:document.getElementsById 不是函数

如何在函数中传递 tokenBok 之类的参数的 ID,或/和我的函数有什么问题?

**Edit:**

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

未捕获的类型错误:el.GetTokenCollection 不是函数

【问题讨论】:

  • getElementsById。错字?

标签: javascript jquery devexpress-mvc


【解决方案1】:

应该是document.getElementById(id):

通过 ID 返回对元素的引用; ID 是一个字符串,可用于标识元素;它可以使用 HTML 中的 id 属性建立,也可以从脚本建立。

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

【讨论】:

    【解决方案2】:

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

    对于Devexpress mvc extensions 使用扩展名like 参数就足够了,不需要用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); 正在工作!!!

    【讨论】:

      猜你喜欢
      • 2020-10-13
      • 2020-10-31
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 2020-01-13
      • 2017-11-10
      相关资源
      最近更新 更多