如何在JavaScript中传递参数名称

How to pass a parameter name in JavaScript?

本文关键字:参数 JavaScript      更新时间:2023-09-26

有没有一种方法可以在JavaScript中动态获取变量的处理程序?我认为这没有意义,所以这就是我要做的。

我正在使用JQueryFlot在我的web应用程序中生成图形。一切都很好,直到我在同一页上有两张图。

我使用c#从数据库中获取数据,并将其转换为JavaScript数组,然后像这样写入页面。

HTML/C#:

@{
        KII.Models.JsonPerformGraphData items = new KII.Models.JsonPerformGraphData();
        foreach (KII.Models.PerformanceGraphItem item in Model.PerformanceGraphItems)
        {
            items.Add(item);
        }
        <script type="text/javascript">
      @Html.Raw("var pgdata"+Model.Id+" = ")  @Html.Raw(items.toJson()) ;
        </script>
    } 

然后,我在文档上调用一个方法,准备绘制图

JavaScript:

if ($(".PerformanceGraph")) {
        $(".PerformanceGraph").livequery(function () {
            //Display the graph for risk and reward.
            var options = { series: {
                bars: { show: true, barWidth: 0.45, align: "center" }
            },
                legend: {
                    show: true, position: "ne", backgroundOpacity: 0, container: $("#PerformanceGraphLegend")
                },
                multiplebars: true
            };

            var dataArray = $(this).attr('data-array');//I get the name of the variable as String.
            $.plot($(".PerformanceGraph"), pgdata, options);
        });
    } 

javascript的pgdata必须与HTML/C#的"var pgdata"+Model.Id+"匹配。

如何获得HTML/C#代码向HTML吐出的变量?

您可以将变量名连接在一起并"评估"它。

http://www.w3schools.com/jsref/jsref_eval.asp

为什么不做这样的事情?

<script type="text/javascript">
var pgdata = {};
@Html.Raw("pgdata["+Model.Id+"] = ")  @Html.Raw(items.toJson()) ;
</script>

然后在javascript中,您只需迭代pgdata:中的密钥

for (k in pgdata) {
    $.plot($(".PerformanceGraph"), pgdata[k], options);
}