利用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 相关文章推荐
在chrome中window.onload事件的一些问题
Mar 01 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 Javascript
js 调用百度地图api并在地图上进行打点添加标注
May 13 Javascript
实现高性能JavaScript之执行与加载
Jan 30 Javascript
JavaScript入门系列之知识点总结
Mar 24 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
Jan 21 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
Mar 30 Javascript
ES6中Symbol类型用法实例详解
Apr 06 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
Aug 29 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
Apr 18 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
Oct 09 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
Sep 02 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
php中实现简单的ACL 完结篇
2011/09/07 PHP
探讨捕获php错误信息方法的详解
2013/06/09 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
2013/06/28 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python中特殊函数集锦
2015/07/27 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
python 文件查找及内容匹配方法
2018/10/25 Python
Python二元赋值实用技巧解析
2019/10/25 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
项目合作意向书范本
2014/04/01 职场文书
百日安全活动总结
2014/05/04 职场文书
四风问题对照检查材料
2014/09/22 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
七年级作文之环保作文
2019/10/17 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
正则表达式基础与常用验证表达式
2022/06/16 Javascript
Windows server 2016服务器基本设置
2022/08/14 Servers