Javascript 作为类传递变量值而不是其名称

Javascript 作为类传递变量值而不是其名称,javascript,jquery,arrays,twitter-bootstrap,class,Javascript,Jquery,Arrays,Twitter Bootstrap,Class,我有一个保存列宽类值的数组 var colWidth = ["col-sm-0", "col-sm-1", "col-sm-2", "col-sm-3", "col-sm-4", "col-sm-5", "col-sm-6", "col-sm-7", "col-sm-8", "col-sm-9", "col-sm-10", "col-sm-11", "col-sm-12"] 许多其他对象在任何给定的时间都可能在页面上,也可能不在它们自己的div中。这些div的列宽各不相同 我有一个函数,它可以

我有一个保存列宽类值的数组

var colWidth = ["col-sm-0", "col-sm-1", "col-sm-2", "col-sm-3", "col-sm-4", "col-sm-5", "col-sm-6", "col-sm-7", "col-sm-8", "col-sm-9", "col-sm-10", "col-sm-11", "col-sm-12"]
许多其他对象在任何给定的时间都可能在页面上,也可能不在它们自己的div中。这些div的列宽各不相同

我有一个函数,它可以在页面宽度发生任何变化时运行。它被设置为从整个stage宽度中减去页面上其他所有内容的宽度,然后将该值应用于main div

function widthPlotter() {
    oldStageWidth = stageWidth;
    stageWidth = (12 - (panelWidth + menuWidth));
    newClass = colWidth[stageWidth];
    oldClass = colWidth[oldStageWidth];

    $(activeDiv).toggleClass('oldClass newClass')
}
我设置了一个
toggleClass
,因为我希望主列从其当前宽度平滑地设置动画,以便在其他任何更改时填充屏幕

我的问题是:当代码执行时,它会将“oldClass”或“newClass”应用于div,而不是它们的值(例如col-sm-7)

它直接将“oldClass”或“newClass”应用于div,而不是其值(例如col-sm-7)

当然,您给了它一个文本字符串:
'oldClass newClass'
。引号使其成为字符串,而不是对变量的引用

相反:

$(activeDiv).toggleClass(oldClass).toggleClass(newClass);


…但第一个可能更清楚,也同样有效。

旁注:您的代码,正如引用的那样,正在遭受攻击,因为您没有声明您的变量。欢迎使用!总的来说,要直面问题,不要一开始就写上几段关于你对事物是如何陌生的,并且一直在寻找答案却没有找到答案的话。另外:对可运行代码使用堆栈片段;否则,只需使用代码格式。我已经编辑了这个问题来演示。@downvoter:我看不出有任何理由对这个问题投反对票。当然,这是基本的,但基本的问题是允许的。它包括一个清晰的问题陈述和与问题相关的代码。这就解决了它。我试过不加引号,但这打破了这一页。我知道我遗漏了一些显而易见的东西,但非常感谢你为我解释清楚。
$(activeDiv).toggleClass(oldClass + " " + newClass);