我做了一个简单的javascript类,如下所示:
function Horse() {
this.color = 'brown';
this.speed = 'somewhat slow';
}
Run Code Online (Sandbox Code Playgroud)
我在一些元素上附加了一些实例,例如:
$("#horse1").data('d', new Horse());
$("#horse2").data('d', new Horse());
$("#horse3").data('d', new Horse());
Run Code Online (Sandbox Code Playgroud)
现在,我想用每个马对象的JSON表示形式创建一个JSON数组。所以我正在这样做:
// How do I create an empty JSON array here?:
var myJsonArray = ?;
var children = $("#horses").children();
for (var i = 0, m = children.size(); i < m; i++) {
var panel = children[i];
var horse = $(panel).data('h');
// And how do I create a JSON rep of my horse here?
var myJsonHorse = new JsonHorse(?);
// Finally, how do I add it to the json array?
myJsonArray.push(myJsonHorse);
}
Run Code Online (Sandbox Code Playgroud)
是的,我的最终目标是在遍历所有子项之后拥有所有马匹的单个json数组-不确定是否应使用纯JavaScript或jquery完成?
谢谢
----------------编辑-------------------
抱歉,我的最终目标是将数组转换为字符串,因此我将一个大型json数组转换为字符串,可以提交给将由服务器处理的ajax调用。
要声明一个数组,您只需要Array Literal表示法即可:
var myArray = [];
Run Code Online (Sandbox Code Playgroud)
该push方法将正常工作。
另一种可能性是使用该$.map方法:
var myArray = $("#horses").children().map(function (index, el) {
return $(el).data('d');
}).get();
// Will return an array containing:
// [{"color":"brown","speed":"somewhat slow"},
// {"color":"brown","speed":"somewhat slow"},
// {"color":"brown","speed":"somewhat slow"}]
Run Code Online (Sandbox Code Playgroud)
在此处查看示例。
然后将该数组转换为JSON字符串,您可以使用JSON.stringify方法(几乎所有浏览器都可以使用该方法,对于IE <8,您可以使用json2.js)。
| 归档时间: |
|
| 查看次数: |
6415 次 |
| 最近记录: |