js 判断对象是否为空数组对象
2018-01-15 09:51
309 查看
<%@ 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
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
相关文章推荐
- js判断一个对象数组里是否存在某个元素
- 判断数据类型,判断是否空对象,js判断是不是数组
- js--判断一个对象是否为数组
- 判断是否为js数组对象
- js判断数组或对象中的key是否存在
- js实现数组去重、判断数组以及对象中的内容是否相同
- js判断数组,对象是否存在某一未知元素
- js判断一个对象数组里是否存在某个元素
- js 判断对象数组中是否包含某个属性的值和对象转化成数组
- js通过map和set判断数组中的对象的某个属性是否有重复
- js 判断是否为空对象、空数组
- js 判断某个对象是否在数组中
- 从javascript判断一个对象是否为数组中学习js语法
- js实现数组去重、判断数组以及对象中的内容是否相同
- js实现数组去重,判断数组、对象中的内容是否相同
- js语法学习之判断一个对象是否为数组
- js语法学习之判断一个对象是否为数组
- js判断对象是否相等
- Java判断对象或者原始数据类型是否是数组