获取元素的ID并将其设置为变量

时间:2014-09-24 14:36:14

标签: javascript php jquery

我有一个按钮:

<button class="btn btn-info continue">
    <i class="ace-icon fa fa-check bigger-110"></i>
    Continue                                        
</button>

的onClick:

$(".continue").click(function(e) {
    currForm = $(this).parents('form');
    e.preventDefault();
});

我可以非常轻松地获取id:currForm.attr('id');,但是我可以将此id的值设置为变量。

像php的变量变量:

$a = 'hello';
$$a = 'world';
echo $hello;

编辑:我不想更改元素的ID。我想获取此ID并将其用作javascript变量的名称。 例如,我上面提供的元素位于form中,其ID ='example_id'。 currForm.attr('id')会给我example_id,我想设置一个变量example_id并为其指定一个值。

var example_id = 'some value';

6 个答案:

答案 0 :(得分:6)

这里有3个选项。

eval(不推荐)

您可以使用Javascript函数eval来实现您的目标。但要注意,这是不推荐(我强调了两次,希望你理解!)。

  

不要不必要地使用eval!

     

eval()是一个危险的函数,它执行它以调用者的特权传递的代码。如果您使用可能受恶意方影响的字符串运行eval(),您最终可能会使用您的网页/扩展程序的权限在用户的计算机上运行恶意代码。更重要的是,第三方代码可以看到调用eval()的范围,这可能会导致类似函数不易受影响的攻击。<​​/ p>

它会像那样使用:

eval('var ' + varName + ' = "something";');

窗口对象表示法(优于eval,仍然不是真正推荐的)

此方法包括在全局窗口对象上使用JavaScript提供的对象表示法。这会污染全局窗口范围,并且可以被其他不良的JS文件覆盖。如果您想了解有关该主题的更多信息,这是一个很好的问题:Storing a variable in the JavaScript 'window' object is a proper way to use that object?

要使用该方法,您可以这样做:

window[varName] = something;
alert(window[varName]);

使用对象(推荐)

最好的解决方案是创建自己的变量范围。例如,您可以在全局范围上创建变量并为其分配对象。然后,您可以使用对象表示法创建动态变量。它的工作方式与窗口相同:

var globalScope = {};

function awesome(){
    var localScope = {};
    globalScope[varName] = 'something';
    localScope[varName] = 'else';

    notSoAwesome();
}

function notSoAwesome(){
    alert(globalScope[varName]); // 'something';
    alert(localScope[varName]); // undefined
}

答案 1 :(得分:2)

您可以使用javascript对象执行此操作:

var currForm = $(this).parents('form');//form id="hello"

var obj = {};

obj[currForm.attr('id')] = 30;

console.log(obj.hello)

答案 2 :(得分:1)

您可以使用和对象将变量存储在:

var variables = {};

添加变量只需输入:

variables[name] = value;

并访问值:

variables[name] 

请在此处查看:jsFiddle

按钮2读取变量[formid]的值,按钮1将formid设置为已提交

答案 3 :(得分:0)

实现您真正想要的最佳选择是使用eval(),如下所示:

eval("var " + currForm.attr('id');

点击此链接 - &gt;

Dynamic Variables in Javascript

答案 4 :(得分:0)

请尝试以下方法之一:

$(this).attr(example_id, "value")

或者

window[ currForm.attr(id)] = 12;

或者

window[ this.id ] = 12;

答案 5 :(得分:-1)

使用eval(但不推荐):

var id = 'that_id';
eval(id+" = 'other id';");
alert(that_id); // results: 'other id'