gpt4 book ai didi

javascript - 动态创建变量

转载 作者:行者123 更新时间:2023-11-28 15:47:53 25 4
gpt4 key购买 nike

我动态创建代码片段:

var gg = setInterval(function() {
if($('p:visible').length > 0) {
$('p').trigger('click') ;
clearInterval(gg);
}
},500);

代码有效。问题是我使用不同的选择器创建相同的代码片段:

var gg = setInterval(function() {
if($('input:visible').length > 0) {
$('input').trigger('focus') ;
clearInterval(gg);
}
},500);

因此,当我将(创建)这些代码放在一起时,整个事情会进入某个循环,并且不再起作用,看一下这个示例:JsFiddle

问题是我将相同的变量(gg)分配给代码。所以我的问题是:每次创建这些代码片段时如何创建不同的变量?我用 var x=x++ 尝试了一些东西,但无法让它工作。

最佳答案

这里有两种方法可以完成您想要做的事情(动态变量)。第一个是评估字符串。

(有大量文章可以解释为什么这很糟糕。但是,为了完整起见,我提供这个示例......也许作为不该做的事情的示例;)

基于您传入的字符串创建变量的函数,然后使用该 eval'd 变量就可以了。像这样的东西:

function varMaker(str){
// Nothing fancy...
var token = Math.floor(new Date().getTime() * Math.random(10));

// Defining variable with no var for global scope (bad)
return eval(str + '_' + token + ' = undefined;');
}

这是一个快速/肮脏的 fiddle 示例(没有函数生成器,只是一个评估的字符串):http://jsfiddle.net/D3wZ7/

第二种更简洁的方法是使用方括号表示法(也是我推荐的方法)。像这样的事情:

window['gg' + randomized_string] = setInterval(..)

注意:定义变量后,您可以像平常一样引用它:

window['my_cool_variable' + 1] = "stack";
alert(my_cool_variable1); //alerts "stack"

这是一个演示这一点的 fiddle :http://jsfiddle.net/ZmGH5/

祝你好运!

关于javascript - 动态创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21645154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com