使用jQuery.map后使用JSON.stringify的问题

时间:2012-08-07 14:14:09

标签: javascript jquery json web-scraping

我正在编写一个bookmarklet(最终将是一个插件)来抓取指定div下jQuery中列表项的网页。我在使用JSON.stringify

时遇到问题

以下代码允许我将每个项目转换为JSON,但在使用join连接每个字符串时会出现问题。

var dMap = $("div").filter($("#<div-id>")).find("li").map(function() {
    var iObject = {
        id: $(this).data('id'),
        text: $(this).text(),
        list_name: $(this).closest('div').attr('id')
    };
    return JSON.stringify(iObject);
});
console.log(dMap);

第二段代码正确地创建了数组中的每个对象,但生成的数组不会记录生成的JSON。

var dMap = $("div").filter($("#,div-id.")).find("li").map(function() {
    return {
        id: $(this).data('id'),
        text: $(this).text(),
        list_name: $(this).closest('div').attr('id')
    };
});
console.log(dMap);
var json = JSON.stringify(dMap);
console.log(json);

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

根据.map的文档:

  

由于返回值是一个jQuery包装的数组,因此get()将返回的对象用于基本数组是很常见的。

你试过了吗?

var json = JSON.stringify(dMap.get());