2012-08-07 62 views
3

我正在寫一個bookmarklet(最終會成爲一個插件),以便在指定的div下爲jQuery中的列表項提取網頁。我遇到了使用問題JSON.stringify使用jQuery.map後使用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

正如我們不能看到什麼'console.log'輸出,可你把輸出的問題? – jeremyharris 2012-08-07 14:26:19

回答

10

據爲.map的文檔:

由於返回值是一個jQuery包裹的陣列,這是很常見的get()方法返回的對象與基本陣列工作。

你試過:

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

謝謝,這工作!這總是你錯過的小事。 :D – 2012-08-07 14:49:06

+0

沒問題... :) – 2012-08-07 15:06:17