3

指定されたdivの下にあるjQueryのリストアイテムのWebページをスクレイプするブックマークレット(最終的にはプラグインになります)を作成しています。使用に問題があります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);

この2番目のコードスニペットは、配列内の各オブジェクトを正しく作成しますが、結果の配列は結果の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);

何か案は?

4

1 に答える 1

10

のドキュメントによると.map

戻り値はjQueryでラップされた配列であるため、返されたオブジェクトをget()して、基本的な配列で機能させるのが非常に一般的です。

やってみました:

var json = JSON.stringify(dMap.get());
于 2012-08-07T14:29:04.300 に答える