我有一个方向性的问题,我不太确定如何处理,所以这是一个建议请求。
对于我正在研究的项目,我想组装“自定义”变量名称。例如,假设我有这个html页面:
<div id="content">
<div id="variable"></div>
<div id="name"></div>
<div id="custom"></div>
</div>
现在我知道我可以使用$('div').attr('id')
在jQuery中获取id。这是我的问题所在:
我想创建类似这样的内容:
var variable_name_custom = 'Hello world';
通过获取div id生成var-name。 (string div 1 + string div 2 + string div 3)。
如果我现在将3个名称放在一起,我会得到字符串'variable_name_custom',但它将是变量的字符串值,而不是名称。
这可能吗?
答案 0 :(得分:2)
我不知道你为什么要做这样的事情,但是:
var varName = getName(); // will get you 'div1_div2_div3'.
window[varName] = 'Hello world';
alert(div1_div2_div3); // Hello World.
现在您可以访问您创建的div1_div2_div3全局变量。
看看这个Fiddle
答案 1 :(得分:0)
在这里:http://jsfiddle.net/lotusgodkk/wd99s/
window[$('div').attr('id')+'_'+$('span').attr('id')+'_'+$('p').attr('id')] = 'Sample';
console.log(window[$('div').attr('id')+'_'+$('span').attr('id')+'_'+$('p').attr('id')]);
<div id="variable"></div>
<span id="name"></span>
<p id="custom"></p>
答案 2 :(得分:0)
我认为最好的办法是将var更改为对象的属性。
names = {};
names[id1+'_'+id2+'_'+id3] = 'Hello world';
答案 3 :(得分:0)
您好,您可以使用Jquery的地图功能
HTML代码
<div id="content">
<div id="variable"></div>
<div id="name"></div>
<div id="custom"></div>
</div>
的Javascript
$(document).ready(function () {
var varname = $("#content > div").map(function () {
return this.id || null;
}).get().join("_");
window[varname] = "Hello World";
console.log("varname = "+varname);
console.log("value = "+window[varname])
});
看看这个fiddle
希望这有帮助
谢谢, DHIRAJ