我正在编写一个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);
有什么想法吗?
答案 0 :(得分:10)
根据.map
的文档:
由于返回值是一个jQuery包装的数组,因此get()将返回的对象用于基本数组是很常见的。
你试过了吗?
var json = JSON.stringify(dMap.get());