10

好的,所以我想在用户单击时创建变量,每次单击都会添加一个新变量。我目前正在使用 jquery 和 javascript 我不能在服务器端这样做,这必须在浏览器中完成。

newCount = document.getElementById('hello').innerHTML;
    $('.hello').click(function(){
        //set count fast enumeration
        newCount++;
        var hello + newCount = '<p>Hello World</p>';
    }); 

所以我希望变量是 hello1、hello2、hello3、hello4 等。

4

6 回答 6

33

您只能使用括号表示法来做到这一点,这意味着您必须将变量附加到某些东西上。
全局作用域是 window,所以是window['hello' + newCount],但是用一堆随机属性污染全局命名空间听起来不是一个好主意,所以使用对象似乎更好

var vars = {};
var newCount = parseInt($('#hello').html(), 10);

$('.hello').click(function(){
    newCount++;
    vars['hello' + newCount] = '<p>Hello World</p>';
}); 

alert( vars['hello1'] );

小提琴

于 2014-03-29T06:08:18.967 回答
2

在 JavaScript 中(据我所知)有两种方法可以创建动态变量:

eval Function
window object
eval:

var pageNumber = 1;
eval("var text" + pageNumber + "=123;");
alert(text1);
window object:

var pageNumber = 1;
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);

了解更多信息 如何在 javascript 中声明和使用动态变量?

于 2014-03-29T06:08:25.537 回答
1

您可以使用window

var window['hello' + newCount ] = '<p>Hello World</p>';

同样地..

newCount = document.getElementById('hello').innerHTML;
    $('.hello').click(function(){
        //set count fast enumeration
        newCount++;
        var window['hello' + newCount ] = '<p>Hello World</p>';
        alert(window['hello' + newCount ]);
    }); 
于 2014-03-29T06:07:51.923 回答
1

我只会使用一个简单的数组来存储变量。然后索引为 n 的对象将是变量 n 等。

于 2014-03-29T06:08:55.633 回答
1

最简单的方法

var types = {};

for(var i=1; i<=3; i++){
types["ashish"+i] = 'The value of dynamic variable, val';
}

控制台.log(类型);

你可以测试它

jsfiddle

于 2017-07-14T07:33:14.040 回答
-1
var newCount = 0;
$('#btn').click(function(){

    newCount++;
    $('#hello').html('hello' + newCount);
}); 

jsfiddle

于 2014-03-29T06:11:46.487 回答