js 判断对象是否为空数组对象

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<!DOCTYPE html>
<%
String path = request.getContextPath();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>入门zTree</title>
<link rel="stylesheet" href="<%=path%>/css/zTreeStyle/zTreeStyle.css"
type="text/css">
<script type="text/javascript" src="<%=path%>/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript"
src="<%=path%>/js/jquery.ztree.core.min.js"></script>
<script type="text/javascript"
src="<%=path%>/js/jquery.ztree.excheck.min.js"></script>
</head>
<body>
<script>
/* function zTreeOnCheck(event, treeId, treeNode) {
    alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
};
 */ var zTree;
  var nodesss;
  /* let ztreeDoubleClick=(event,treeId,treeNode)=>
{
treeNode= $.fn.zTree.getZTreeObj("user_tree");
   return alert(treeNode + treeNode.tId + ", " + treeNode.name+"isRoot");
} */

var setting = {
view : {
dblClickExpand : true,//双击节点时,是否自动展开父节点的标识
showLine : true,//是否显示节点之间的连线
fontCss : {
'color' : 'black',
'font-weight' : 'bold'
},//字体样式函数
selectedMulti : true
//设置是否允许同时选中多个节点
},
check : {
/* Y 属性定义 checkbox 被勾选后的情况; 
N 属性定义 checkbox 取消勾选后的情况; 
"p" 表示操作会影响父级节点; 
"s" 表示操作会影响子级节点。 */
chkboxType: { "Y": "s", "N": "s" },
chkStyle : "radio",//复选框类型
enable : true
//每个节点上是否显示 CheckBox 
},
data : {
simpleData : {//简单数据模式
enable : true,
idKey : "id",
pIdKey : "pId",
rootPId : ""
}
},
callback : {
onDblClick: onDbClickfunction
}

};
function onDbClickfunction(event, treeId, treeNode) {


nodesss = treeNode;
//alert(treeNode.name);


//alert(nodesss.name);


//确定当前选中的节点


// console.log(nodesss);
//console.log(treeNode);
var treeObj=$.fn.zTree.getZTreeObj("user_tree");
//var nodes=treeObj.getSelectedNodes();
//var nodes = treeObj.getNodesByParamFuzzy("name", "admin", null);
var nodes = treeObj.getNodes();


//console.log(nodesss);
console.log(nodesss);
var jsonData;
$.ajax({
async:false,
cache:false,
data:{"pid":nodesss.id},
type:'POST',
dataType:'json',
url:"<%=path%>/ztree/childrenZtree",
error:function(){
console.log("失败了");
},
success:function(data){
console.log(data);
var b = (JSON.stringify(data) == "[]");
alert(b);//true
jsonData=data;
}
});
treeObj.addNodes(nodesss,jsonData,false);
//console.log(jsonData);
treeObj.reAsyncChildNodes(nodesss, "refresh",false,chenggong());




}
var chenggong=()=>console.log("成功了");



</script>
<p class="zTreeDemoBackground left"></p>
<shiro:user></shiro:user>
<ul id="user_tree" class="ztree"
style="border: 1px solid #617775; overflow-y: scroll; height: 500px;"></ul>
<p></p>
<!-- <script>
var zNodes = [ {
id : 1,
pId : 0,
name : "test 1",
open : false
}, {
id : 11,
pId : 1,
name : "test 1-1",
open : true
}, {
id : 111,
pId : 11,
name : "test 1-1-1"
}, {
id : 112,
pId : 11,
name : "test 1-1-2"
}, {
id : 12,
pId : 1,
name : "test 1-2",
open : true
}, ];


$(document).ready(function() {
$.fn.zTree.init($("#user_tree"), setting, zNodes);
});

</script> -->
<script>
$(document).ready(function(){
    onLoadZTree();
});
 
/**
* 加载树形结构数据
*/
function onLoadZTree(){
    var treeNodes;
    $.ajax({
        async:false,//是否异步
        cache:false,//是否使用缓存
        type:'POST',//请求方式:post
        dataType:'json',//数据传输格式:json
        url:'<%=path%>/ztree/jsonZtree',
        //请求的action路径
        error:function(){
            //请求失败处理函数
            alert('亲,请求失败!');
        },
        success:function(data){
//           console.log(data);
            //请求成功后处理函数
            treeNodes = data;//把后台封装好的简单Json格式赋给treeNodes
        }
    });
$.fn.zTree.init($("#user_tree"), setting, treeNodes);
}   

</body>
</html>

1.将json对象转化为json字符串,再判断该字符串是否为"[]"

var data =[];
var b = (JSON.stringify(data) == "[]");
alert(b);//true


2.for in 循环判断
var obj = [];
var b = function() {
for(var key in obj) {
return false;
}
return true;
}
alert(b());//true


3.jquery的isEmptyObject方法
此方法是jquery将2方法(for in)进行封装,使用时需要依赖jquery
var data = [];
var b = $.isEmptyObject(data);
alert(b);//true


4.Object.getOwnPropertyNames()方法
此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空
注意:此方法不兼容ie8,其余浏览器没有测试
var data = [];
var arr = Object.getOwnPropertyNames(data);
alert(arr.length == 0);//true


5.使用ES6的Object.keys()方法
与4方法类似,是ES6的新方法, 返回值也是对象中属性名组成的数组
var data = [];
var arr = Object.keys(data);
alert(arr.length == 0);//true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值