使用jquery更改javascript变量

使用jquery更改javascript变量,javascript,jquery,asp.net-mvc,razor,Javascript,Jquery,Asp.net Mvc,Razor,在我的MVC项目中,我在共享布局中导入了一个.js文件 <script src="@Url.Content("~/Scripts/bootbox.js")" type="text/javascript"></script> 在其中一个视图中,我想用jQuery更改en的OK值。如何执行此操作?假设文件将区域设置定义为全局变量 locales.en.OK = 'en'; 不过,需要明确的是,这与jQuery、razor或模型视图控制器无关。这只是在本机Javascri

在我的MVC项目中,我在共享布局中导入了一个.js文件

 <script src="@Url.Content("~/Scripts/bootbox.js")" type="text/javascript"></script>

在其中一个视图中,我想用jQuery更改
en
OK
值。如何执行此操作?

假设文件将区域设置定义为全局变量

locales.en.OK = 'en';
不过,需要明确的是,这与jQuery、razor或模型视图控制器无关。这只是在本机Javascript中设置对象属性的方式,不需要进一步的技术


现在我自己下载了bootbox.js,看看这里发生了什么。locales没有定义为全局变量,它的作用域是包含bootbox.js所有内容的匿名包装函数

这意味着无法从该范围之外动态更改该变量的内容。如果要永久更改该文本,可以在bootbox.js中手动更改。如果要动态更改它,则可以替换

var locales = ...


在bootbox.js中,然后在您自己的代码中使用我最初的建议。

您可以在某个范围内声明
区域设置
,在全局范围外定义
区域设置
,或者从
区域设置
中删除
var
,如下所述

locales = {
  en: {
    OK: "OK",
    CANCEL: "Nej",
    CONFIRM: "Ja"
}}

您可以通过
locales.en.OK

locales.en.OK='en'调用它?不起作用,说它没有定义。我们可以从一个视图访问另一个视图中的js变量吗?您检查了JavaScript文件的范围了吗?听起来变量超出了您试图访问它的范围。@TobiasOlofsson是在
函数体中定义的
var
?如果是的话,它将无法直接从外部访问。
window.locales = ...
locales = {
  en: {
    OK: "OK",
    CANCEL: "Nej",
    CONFIRM: "Ja"
}}