【发布时间】:2018-05-31 08:40:54
【问题描述】:
我正在尝试用变量替换函数中的字母“a”。例如,改变这个:
setInterval(function(){
var $a = $( '.a' );
});
对此:
var thisClass = 'a';
setInterval(function(){
var $(thisClass) = $( '.'+thisClass );
});
问题是= $( '.'+thisClass ); 工作得很好,但var $(thisClass) 不行。我尝试了一些变体,包括:var $thisClass 和 var $('thisClass'),但没有一个工作。
是否可以插入/注入变量来代替$a 中的“a”?
更新:
以下是我的实际代码的当前状态。我确实意识到我可以简单地将$a 替换为$( '.a' ),这解决了我尝试使用var 一次替换我的函数中使用的所有类名的一些问题。但是我最后仍然留下getElementById("a"),如果我使用例如getElementById("classVar") 或getElementById(classVar) 代替,这将不起作用。
setTimeout(function(){
var classVar = 'a';
$('.'+classVar).makisu( 'toggle' );
$('.'+classVar).makisu({
selector: 'dd',
overlap: Math.random() * (.7 - .2) + .2,
speed: Math.random() * (3 - .2) + .2
});
}, document.getElementById("a").childElementCount*universalBoxTime );
【问题讨论】:
-
在不清除的情况下调用
setInterval会使其中的代码在无限循环中运行 -
为什么你的代码会依赖于你的变量的具体名称?
-
嗨@Blender,我不确定我是否理解你的问题,但如果它澄清了,我的实际项目将使用更复杂的类似函数的许多副本。我试图想出一个简单的方法,而不是必须更改函数内部多次使用的 className 引用,我只想保持大部分代码相同并使用
var =切换出来所有具有唯一性的默认类名。类似 `var uniqueClassName = defaultClassReferencesInsideFunction;` 之类的东西,因此在编码时节省了我一些时间。 -
@forestkelley:为什么不能在函数体中使用
var $a = $( '.'+thisClass );而只使用$a? -
@Blender,我刚刚用我当前更长的代码更新了我的帖子。我认为,在某种程度上,我基本上已经完成了您使用
var classVar = 'a';而不是var $a = $( '.'+thisClass );的建议。
标签: javascript jquery variables dollar-sign