利用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 在各个浏览器中执行的耐性
Apr 06 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
jquery 鼠标滑动显示详情应用示例
Jan 24 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
js实现数组和对象的深浅拷贝
Sep 30 Javascript
解决ie img标签内存泄漏的问题
Oct 13 Javascript
Node.js Express安装与使用教程
May 11 Javascript
vue 路由嵌套高亮问题的解决方法
May 17 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
微信小程序开发背景图显示功能
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
收音机指标测试方法及仪器
2021/03/01 无线电
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
PHP进程同步代码实例
2015/02/12 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
Express.JS使用详解
2014/07/17 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
微信小程序提交form操作示例
2018/12/30 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
python中的yield使用方法
2014/02/11 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Django实现跨域的2种方法
2019/07/31 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
详解Python3中的 input() 函数
2020/03/18 Python
Python itertools.product方法代码实例
2020/03/27 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
大四自我鉴定范文
2013/10/06 职场文书
生产车间标语
2014/06/11 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL