diff --git a/lib/jquery.print.js b/lib/jquery.print.js index 83bc8fd..45ca6ff 100644 --- a/lib/jquery.print.js +++ b/lib/jquery.print.js @@ -3,8 +3,8 @@ // helper functions function print_array(obj, opts){ - var max = obj.length > opts.maxArray ? opts.maxArray : obj.length opts.maxString = 25 + var max = obj.length > opts.maxArray ? opts.maxArray : obj.length var result = []; for (var i = 0; i < max; i++) { @@ -25,10 +25,16 @@ ">" } - function print_object(obj){ + function print_object(obj, opts){ + opts.maxString = 25 + if (!opts.seen) opts.seen = [] + var result = [] for (var k in obj) { - result.push(k + ": " + $.print(obj[k])) + if (opts.seen.indexOf(obj[k]) == -1) { + opts.seen.push(obj[k]) + result.push(k + ": " + $.print(obj[k], opts)) + } } if (result.length == 0) return "{}" @@ -107,7 +113,7 @@ return print_jquery(obj) else if (obj instanceof Object) - return print_object(obj) + return print_object(obj, opts) else return obj.toString().replace(/\n\s*/g, '')