计算以前使用的变量的名称

时间:2011-10-18 10:41:56

标签: jquery variables

我需要一种方法来查找先前在document.ready()函数中加载的变量的名称。变量的名称绑定在需要再次调用它的元素的id内。

假设变量为var myScrollscroll5,需要再次调用变量的元素的id将为scroll5。因此,我希望这会奏效。

'myScroll' + $('.dircore').attr('id').refresh();

我们不能只调用变量,因为名称是未知的,只能在元素.dircore的id中找到。

奇怪的是,这只适用于firefox,即使firebug说这是一个错误。但是在其他浏览器中不起作用。

3 个答案:

答案 0 :(得分:0)

您需要eval

var sVarName = 'myScroll' + $('.dircore').attr('id');
eval(sVarName + ".refresh();");

虽然eval被认为是邪恶的,但它有时会很有用,这看起来像其中一个时间,因为您不评估用户输入只是您自己的内部数据。

答案 1 :(得分:0)

如果您添加了一些可能有用的代码。对我而言,它似乎是全局与本地范围问题。无论您在做什么,只需先在全局范围内定义变量,然后在函数内部设置值,无论您使用何种方法来实例化变量值。例如

A)。 //在全球范围内       var myvariable = null;

 //inside function
 $(document).ready(function(){
      myvariable='set_value_here'
  })

然后在全局或本地范围内访问变量。

b)其他选项可能将变量定义为对象

   var myScrollscroll5={value:'value', id:'idof'}

    $('#'+myScrollscroll5.id).refresh() 
欢呼:)

答案 2 :(得分:0)

你不能使用jQuery .data()函数将数据绑定到元素,并在以后调用它吗?

像这样:

  

$(document).ready(function(){$('#scroll5')。data('data',value);});

然后:

  

$('。dircore')。each(function(){$(this).data('data')。refresh();});

或类似的东西。这样,您也可以避免因循环引用和由它们引起的内存泄漏。