利用js将ajax获取到的后台数据动态加载至网页中的方法


Posted in Javascript onAugust 08, 2018

动态生成二级菜单树:

<script>
jQuery(function($) {
/**********
获取未处理报警信息总数
**************/
var result;
$.ajax({
async:false,
cache:false,
url: "alarm_findPageAlarm.do",//访问后台接口取数据
// dataType : "json",
type: 'POST',
success: function(data){
result = eval('('+ data +')');
}
});
var alarmCount;
alarmCount = result.total;

/**********

静态代码形式

**********/
/* 
<li>
<a href="#" rel="external nofollow" class="dropdown-toggle">
<i class="icon-desktop"></i>
<span class="menu-text"> 设备管理 </span>


<b class="arrow icon-angle-down"></b>
</a>


<ul class="submenu">
<li>
<a href="smartTerminal.html" rel="external nofollow" >
<i class="icon-double-angle-right"></i>
智能终端管理
</a>
</li>
<li>
<a href="labelPrinter.html" rel="external nofollow" >
<i class="icon-double-angle-right"></i>
标签打印机管理
</a>
</li>
</ul>
</li>
*/

/*****从后台取出导航栏数据******/
$.ajax({
async:true,
cache:false,
url: "user_getMenuBuf.do",
// dataType : "json",
type: 'POST',
success: function(result){
var result = eval('('+ result +')');
if(result != undefined && result.length > 0){
var firstMenu = [];
var firstHref = [];
var firstIcon = [];
var subMenu = [];

/******一级导航栏数据*******/
for (var i = 0; i < result.length; i++){
firstMenu[i] = result[i].name;
firstHref[i] = result[i].url;
firstIcon[i] = result[i].iconCls;

/*******添加li标签********/
var menuInfo = document.getElementById("menuInfo");
var firstLi = document.createElement("li");//创建新的 li元素
menuInfo.appendChild(firstLi);//将此li元素添加至页面的ul下一级中
firstLi.style.borderBottom = "0px solid #CCEBF8";//设置li下边框样式

/******设置选中li、离开li时li的样式********/
firstLi.onmouseover = function(){
this.style.background = "#23ACFA";
};
/* firstLi.onmouseover = function(){
this.style.background = "#23ACFA";
}; */
firstLi.onmouseout=function(){
this.style.background = "#0477C0";
};

/******添加a标签**********/
var firstALabel = document.createElement("a");
firstALabel.setAttribute("href", firstHref[i]);//js为新添加的a元素动态设置href属性
firstALabel.setAttribute("class", "dropdown-toggle");
//firstALabel.className = "dropdown-toggle";//兼容性好
firstALabel.setAttribute("target", "content");
//firstALabel.style.backgroundImage="url(./img/17.jpg)"
firstALabel.style.background = "#0477C0";//js为新添加的a元素动态设置背景颜色
// background:url(./img/17.jpg);
firstALabel.style.marginLeft = "20px";//js为新添加的a元素动态设置左外边距
firstLi.appendChild(firstALabel);
firstALabel.onmouseover = function(){
this.style.background = "#23ACFA";
};
/* firstALabel.onmouseover = function(){
this.style.background = "#23ACFA";
}; */
firstALabel.onmouseout=function(){
this.style.background = "#0477C0";
};


/*******添加i标签*******/
var firstILavel = document.createElement("i");
firstILavel.setAttribute("class", firstIcon[i]);
firstILavel.style.color = "#F4F8FF";//动态设置i元素的颜色
firstALabel.appendChild(firstILavel);

/*********添加span标签**********/
var firstSpan = document.createElement("span");
firstSpan.className = "menu-text";
firstSpan.innerHTML = firstMenu[i];//js为新添加的span元素动态设置显示内容
firstSpan.style.fontSize = "14.5px";//js为新添加的span元素动态设置显示内容的字体大小
firstSpan.style.color = "#66D2F1";//js为新添加的span元素动态设置显示内容的字体颜色
firstSpan.style.marginLeft = "15px";
firstALabel.appendChild(firstSpan);

if (firstMenu[i] == "报警信息管理"){
var alarmIcon = document.createElement("span");
alarmIcon.className = "badge badge-important";
alarmIcon.innerHTML = alarmCount; //alarmCount为全局变量,且是通过ajax从后台获取到的
firstSpan.appendChild(alarmIcon);
}

if (result[i].children.length > 0){
var secondHref = [];
var secondMenu = [];
var secondIcon = [];

/*******添加b标签********/
var firstBLabel = document.createElement("b");
firstBLabel.className = "arrow icon-angle-down";
firstBLabel.style.color = "white";
firstALabel.appendChild(firstBLabel);

/********添加ul标签************/
var secondUl = document.createElement("ul");
secondUl.setAttribute("class", "submenu");
firstLi.appendChild(secondUl);

for (var j = 0; j < result[i].children.length; j++){
secondHref[j] = result[i].children[j].url;
secondMenu[j] = result[i].children[j].name;
secondIcon[j] = result[i].children[j].iconCls;

/******添加li标签*******/
var secondLi = document.createElement("li");
secondLi.style.background = "#CCEBF8";
secondUl.appendChild(secondLi);

/*******添加a标签*******/
var secondALabel = document.createElement("a");
secondALabel.setAttribute("href", secondHref[j]);
secondALabel.setAttribute("target", "content");
//secondALabel.style.background = "#CCEBF8";
secondLi.appendChild(secondALabel);

/*******添加i标签**********/
var secondILabel = document.createElement("i");
secondILabel.setAttribute("class", "icon-double-angle-right");
secondALabel.appendChild(secondILabel);

/******添加二级导航信息********/
secondALabel.innerHTML = secondMenu[j];
secondALabel.style.fontSize = "15px";
//secondALabel.style.marginLeft = "60px";
}
}
}
   }
  }, 
 error: function() { 
 alert("加载菜单失败"); 
 } 
});
})
</script>

静态生成菜单树的代码:

利用js将ajax获取到的后台数据动态加载至网页中的方法

生成菜单树的效果:

利用js将ajax获取到的后台数据动态加载至网页中的方法

以上这篇利用js将ajax获取到的后台数据动态加载至网页中的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 检测、添加、移除样式(className)函数代码
Sep 08 Javascript
javascript不同类型数据之间的运算的转换方法
Feb 13 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
javascript实现获取服务器时间
May 19 Javascript
jQuery实现本地预览上传图片功能
Jan 08 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 Javascript
angular4实现tab栏切换的方法示例
Oct 21 Javascript
Javascript 编码约定(编码规范)
Mar 11 Javascript
Node.js 使用request模块下载文件的实例
Sep 05 Javascript
JS实现选项卡效果的代码实例
May 20 Javascript
详解jQuery中的prop()使用方法
Jan 05 jQuery
微信小程序开发背景图显示功能
Aug 08 #Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 #Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 #Javascript
快速解决处理后台返回json数据格式的问题
Aug 07 #Javascript
详解如何在vue-cli中使用vuex
Aug 07 #Javascript
React styled-components设置组件属性的方法
Aug 07 #Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 #Javascript
You might like
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
Webpack中publicPath路径问题详解
2018/05/03 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
pytyon 带有重复的全排列
2013/08/13 Python
python k-近邻算法实例分享
2014/06/11 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
parser.add_argument中的action使用
2020/04/20 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
药品采购员岗位职责
2014/02/08 职场文书
环保倡议书300字
2014/05/15 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
办公用房租赁协议书
2014/11/29 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
看雷锋电影观后感
2015/06/10 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
Ruby处理YAML和json数据
2022/04/18 Ruby