JavaScrip实现PHP print_r的数功能(三种方法)


Posted in Javascript onNovember 12, 2013

方法一

function print_r(theObj) {
    var retStr = '';
    if (typeof theObj == 'object') {
        retStr += '<div style="font-family:Tahoma; font-size:7pt;">';
        for (var p in theObj) {
            if (typeof theObj[p] == 'object') {
                retStr += '<div><b>['+p+'] => ' + typeof(theObj) + '</b></div>';
                retStr += '<div style="padding-left:25px;">' + print_r(theObj[p]) + '</div>';
            } else {
                retStr += '<div>['+p+'] => <b>' + theObj[p] + '</b></div>';
            }
        }
        retStr += '</div>';
    }
    return retStr;
}

方法二
$(document).ready(function(){
 $('#btn').click(function(){
   var jsonStr = $('#jsonData').val();
   var json = eval('('+jsonStr+')');
   (function(){
  var print_r = function(o, depth) {
    var result = '';
    depth || (depth=1);
    var indent = new Array(4*depth+1).join(' ');
    var indentNext = new Array(4*(depth+1)+1).join(' ');
    var indentNextTwo = new Array(4*(depth+2)+1).join(' ');
    var tmp = '';
    var type = typeof o;
    switch(type) {
   case 'string':
   case 'number':
   case 'boolean':
   case 'undefined':
   case 'function':
     tmp += indent + indentNext + o + "\n";
     break;
   case 'object':
   default:
     for(var key in o) {
    tmp += indentNextTwo + '[' + key + '] = ';
    tmp += print_r(o[key], (depth+1));
     }
    }
    result += type + "\n";
    result += indentNext + '(' + "\n";
    result += tmp;
    result += indentNext + ')' + "\n";
    return result;
  };
  alert(print_r(json));
   }(json));
 });
});

方法三
print_r:function(theObj) {
 var retStr = '';
 if (typeof theObj == 'object'||typeof theObj == 'array') {
  retStr += '<div style="font-family:Tahoma; font-size:7pt;">';
  for (var p in theObj) {
   if (typeof theObj[p] == 'object' || typeof theObj[p] == 'array') {
    retStr += '<div><b>['+p+'] => ' + typeof(theObj) + '</b></div>';
    retStr += '<div style="padding-left:25px;">' + XFUPLOAD.Tools.print_r(theObj[p]) + '</div>';
   } else {
    retStr += '<div>['+p+'] => <b>' + theObj[p] + '</b></div>';
   }
  }
  retStr += '</div>';
 }
 $("body").append(retStr);
}
Javascript 相关文章推荐
js中的for如何实现foreach中的遍历
May 31 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 Javascript
javascript的日期对象、数组对象、二维数组使用说明
Dec 22 Javascript
了不起的node.js读书笔记之mongodb数据库交互
Dec 22 Javascript
学习javascript面向对象 javascript实现继承的方式
Jan 04 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 Javascript
浅析Angular19 自定义表单控件
Jan 31 Javascript
React中this丢失的四种解决方法
Mar 12 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 Javascript
JavaScript中的字符串操作详解
Nov 12 #Javascript
JavaScript简单实现网页回到顶部功能
Nov 12 #Javascript
判定是否原生方法的JS代码
Nov 12 #Javascript
给文字加上着重号的JS代码
Nov 12 #Javascript
深入理解javascript动态插入技术
Nov 12 #Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 #Javascript
JS常用正则表达式总结
Nov 12 #Javascript
You might like
php调用mysql存储过程
2007/02/14 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
PHP钩子实现方法解析
2019/05/21 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
Python版微信红包分配算法
2015/05/04 Python
python的多重继承的理解
2017/08/06 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
python设置随机种子实例讲解
2019/09/12 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
python如何随机生成高强度密码
2020/08/19 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
python实现剪贴板的操作
2021/07/01 Python
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏