利用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中的对象化编程
Jan 16 Javascript
jQuery代码优化 选择符篇
Nov 01 Javascript
jQuery实现的图片分组切换焦点图插件
Jan 06 Javascript
jquery实现的省市区三级联动
Apr 02 Javascript
轻松理解Javascript变量的相关问题
Jan 20 Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
Dec 11 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
Jun 14 Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 Javascript
JS如何实现在弹出窗口中加载页面
Dec 03 Javascript
Javascript中的解构赋值语法详解
Apr 02 Javascript
vue实现移动端div拖动效果
Mar 03 Vue.js
微信小程序开发背景图显示功能
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删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
python实现根据文件格式分类
2019/10/31 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
优秀志愿者事迹材料
2014/02/03 职场文书
学生感冒英文请假条
2014/02/04 职场文书
客服专员岗位职责
2014/02/28 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
五水共治一句话承诺
2014/05/30 职场文书
五年级下册复习计划
2015/01/19 职场文书
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python
Python使用MapReduce进行简单的销售统计
2022/04/22 Python