【问题标题】:Accessing a variable that's outside of a script访问脚本之外的变量
【发布时间】:2014-12-26 01:55:12
【问题描述】:

我有以下代码,但无法从脚本中访问“myVariable”——我假设是因为它是一个函数,而“myVariable”需要是一个全局变量。如何创建全局变量?

(注意:这是 Visual Studio 中 ASP.NET MVC 项目中的 .cshtml 文件)

<!DOCTYPE html>
<html>
<head>
</head>
<body>

    @{var myVariable = "this is what I want to access and change later in the script";}

<div class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
  ...
        </div>
    </div>
</div>

<script>
    $('[name="optradio1"]').on('change', function () {
        $('#accordion-second').slideToggle();
        $('#accordion-first').slideToggle();
        alert(myVariable);
    })
</script>
</body>
</html>

【问题讨论】:

    标签: jquery asp.net asp.net-mvc visual-studio-2013 bootcamp


    【解决方案1】:

    您可以使用数据属性:

    <script id="myScript" data-myvar="@myVariable">
        $('[name="optradio1"]').on('change', function () {
            $('#accordion-second').slideToggle();
            $('#accordion-first').slideToggle();
            alert($('#myScript').data('myvar'));
        });
    </script>
    

    通常放在 HTML 内容标签上,因为您通常已经有一些唯一标识符或类,但您也可以在脚本标签上这样做。

    【讨论】:

    • 谢谢@TimVermaelen!有没有办法使用数据属性来设置一个变量等于另一个?例如,如果data-myvar2=@myVariable2 也包含在内,我可以在脚本中设置一个等于另一个吗?因为我喜欢使用数据属性,因为它们看起来类似于传入变量,但不确定如何设置一个等于另一个。 $('#myScript').data('myvar') = $('#myScript').data('myvar2'); 不起作用...
    • 别在意第二个问题@TimVermaelen——我可以通过 jquery API 文档弄清楚。以下工作:$('#myScript').data('myvar', $('#myScript').data('myvar2')); 再次感谢您的帮助!
    【解决方案2】:

    请改成alert(myVariable);

    请使用下面的代码,而不是使用它。

           var val = parseInt('@myVariable') + 5;
            alert(val);
    

    试试这个。

    【讨论】:

    • 如果我想用@myVariable 添加一些价值,那么我该如何实现呢?例如 myVariable = myVariable + 5
    • 如果它是完整的,只需通过单击 0 前面的向上箭头将答案标记为正确,它位于我的代码左侧,如菜单。
    • 感谢@Aravindan,但不幸的是,由于某种原因这不起作用——另外,我的变量是一个字符串而不是整数。我尝试了var val = toString('@myVariable');,它在警报中返回了 [object Window]
    猜你喜欢
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2014-12-15
    • 2017-02-07
    • 2021-01-15
    • 2019-05-11
    相关资源
    最近更新 更多