2013-12-14 29 views
0

我具有不同数量的对象,如= 1,B = 2。我想使用迭代法将它们转变成jQuery的对象作为如下如何以集体的方式更改对象的类型?

var a = 1, b = 2; 
var ArrayToJQuery = [a, b]; 

for (var obj in ArrayToJQuery) { 
    obj = $("<div>").text(obj); 
} 

a.click(function(){ alert($(this).text())}); //error 

我曾尝试,forin,的forEach。它们都不起作用。 我该如何做到这一点?

+1

数组只包含变量的值,它不包含的变量本身引用。你不能像这样间接地改变变量的值。 – Barmar

回答

2

对于这样的事情,最好使用对象的属性,而不是变量:

var stuff = { 
    a: 1, 
    b: 2 
}; 
var key; 
for (key in stuff) { 
    stuff[key] = $("<div>").text(stuff[key]); 
} 

取而代之的for-in你可以使用jQuery的$.each

var stuff = { 
    a: 1, 
    b: 2 
}; 
$.each(stuff, function(key, entry) { 
    stuff[key] = $("<div>").text(entry); 
}); 
+0

但每次我提到我的对象,我需要调用stuff.a 我想直接拨打电话 –

+0

@ user1978421:是的。 (你不用“调用”属性,你“使用”它们,但是)。对于你在做什么,你需要一个容器,所以在引用东西时('stuff.a')使用容器是要求你在做什么。 (好吧,在技术上你不需要**一个容器,你可以使用'eval',但是使用容器对象要好得多。) –

-2

你可以使用jQuery。每为了这。

$.each([ 52, 97 ], function(index, value) { alert(index + ": " + value);}); 

请查看此链接以获取更多详细信息。

http://api.jquery.com/jQuery.each/

相关问题