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 相关文章推荐
jquery单选框radio绑定click事件实现方法
Jan 14 Javascript
Lab.js初次使用笔记
Feb 28 Javascript
js获取Html元素的实际宽度高度的方法
May 19 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
JavaScript Uploadify文件上传实例
Feb 28 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
Sep 01 Javascript
webpack4 CSS Tree Shaking的使用
Sep 03 Javascript
详解js根据百度地图提供经纬度计算两点距离
May 13 Javascript
深入浅出vue图片路径的实现
Sep 04 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
Aug 31 Javascript
vue $router和$route的区别详解
Dec 02 Vue.js
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
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数学运算与数据处理实例分析
2016/04/01 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
使用js实现数据格式化
2014/12/03 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
浅析python递归函数和河内塔问题
2017/04/18 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
英文版餐饮业求职信
2013/10/18 职场文书
精彩的英文自荐信
2014/01/30 职场文书
幼儿园大班教师评语
2019/06/21 职场文书