有时候想把公共的html封装起来,怎么处理呢?

好多页面都用到,不可能每个页面都写,这样就会有冗余,并且不好统一处理。

那就用js来重构html吧。

代码案例如下:

<footer class="aui-bar aui-bar-tab" id="footer">
<div class="aui-bar-tab-item" tapmode onclick="openWinPro('menu_mall')">
<i class="aui-iconfont aui-icon-home"></i>
<div class="aui-bar-tab-label">云店</div>
</div>
<div class="aui-bar-tab-item aui-active" tapmode>
<i class="aui-iconfont aui-icon-comment"></i>
<div class="aui-bar-tab-label">消息</div>
</div>
<div class="aui-bar-tab-item " tapmode onclick="openWinPro('menu_find')">
<i class="aui-iconfont aui-icon-like"></i>
<div class="aui-bar-tab-label">发现</div>
</div>
<div class="aui-bar-tab-item" tapmode onclick="openWinPro('menu_enterment')">
<i class="aui-iconfont aui-icon-video"></i>
<div class="aui-bar-tab-label">娱乐</div>
</div>
<div class="aui-bar-tab-item" tapmode onclick="openWinPro('menu_mine')">
<i class="aui-iconfont aui-icon-my"></i>
<div class="aui-bar-tab-label">我的</div>
</div>
</footer>

处理成js

function showMainMenu(active_name) {
// var active_name = arguments[0] ? arguments[0] : 'menu_mall'; // 定义默认值
active_name = active_name || 'menu_mall'; // 定义默认值
var footerHtml = '';
footerHtml += '<footer class="aui-bar aui-bar-tab" id="footer">';
if (active_name == 'menu_mall') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-home"></i>';
footerHtml += ' <div class="aui-bar-tab-label">云店</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_mall\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-home"></i>';
footerHtml += ' <div class="aui-bar-tab-label">云店</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_msg') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-comment"></i>';
footerHtml += ' <div class="aui-bar-tab-label">消息</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_msg\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-comment"></i>';
footerHtml += ' <div class="aui-bar-tab-label">消息</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_find') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-like"></i>';
footerHtml += ' <div class="aui-bar-tab-label">发现</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_find\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-like"></i>';
footerHtml += ' <div class="aui-bar-tab-label">发现</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_enterment') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode >';
footerHtml += ' <i class="aui-iconfont aui-icon-video"></i>';
footerHtml += ' <div class="aui-bar-tab-label">娱乐</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_enterment\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-video"></i>';
footerHtml += ' <div class="aui-bar-tab-label">娱乐</div>';
footerHtml += ' </div>';
} if (active_name == 'menu_mine') {
footerHtml += ' <div class="aui-bar-tab-item aui-active" tapmode>';
footerHtml += ' <i class="aui-iconfont aui-icon-my"></i>';
footerHtml += ' <div class="aui-bar-tab-label">我的</div>';
footerHtml += ' </div>';
} else {
footerHtml += ' <div class="aui-bar-tab-item" tapmode onclick="openWinPro(\'menu_mine\')">';
footerHtml += ' <i class="aui-iconfont aui-icon-my"></i>';
footerHtml += ' <div class="aui-bar-tab-label">我的</div>';
footerHtml += ' </div>';
} footerHtml += '</footer>';
// $('body').append(footerHtml);
$api.append($api.dom('body'),footerHtml);
}

注意保持间距和美观性,利于后期维护。

调用很简单,用到的页面,直接调用函数showMainMenu()即可。

效果等同于每个页面都写一遍html。

原html中的单引号,加一个下划线处理一下就可以了。

封装html代码块到js函数中的更多相关文章

  1. JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this

    JAVA之旅(十三)--线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this 我们继续上个篇幅接着讲线程的知识点 一.线程的安全性 当我们开启四个窗口(线程 ...

  2. 在JS函数中执行C#中的函数、字段

    1.调用字段 cs文件的代码: ; protected void Page_Load(object sender, EventArgs e) { id = ; } js页面的代码: function ...

  3. eclipse实现代码块折叠-类似于VS中的#region……#endregion

    背 景 刚才在写代码的时候,写了十几行可以说是重复的代码: 如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们“浓缩”成一行,脑子里第一个闪现出 ...

  4. js函数中获得当前被点击元素

    问题描述:在html页面中点击<a>或者’按钮‘,进入js中的函数,在js函数中获得被点击那个<a>或‘按钮’元素 解决方法:方法一: html中: <a>标签:& ...

  5. 【玩转Eclipse】——eclipse实现代码块折叠-类似于VS中的#region……#endregion

    [玩转Eclipse]——eclipse实现代码块折叠-类似于VS中的#region……#endregion http://www.cnblogs.com/Micheal-G/articles/507 ...

  6. js函数中this的不同含义

    1.js函数调用过程中,js线程会进入新的执行环境并创建该环境的变量对象,并添加两个变量:this和arguments,因此可以在函数中使用这两个变量.需要注意的是,this变量不能重新赋值,而arg ...

  7. js函数中参数的传递

    数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...

  8. js函数中的BOM和DOM

    BOM 浏览器对象模型  screen对象 console.log(screen.width);// 屏幕宽度 console.log(screen.height);// 屏幕高度 console.l ...

  9. 构造代码块、this关键字、静态变量、静态代码块、主函数

    一.构造代码块: 作用:给对象进行初始化. 特点:对象一经运行就执行(与变量声明时赋初值同级别,此处注意 非法前向引用) 优先于构造函数的执行. 与构造函数的区别: 构造代码块是给所有对象统一初始化. ...

随机推荐

  1. C语言的常用printf打印占位符%d, %u, %f, %s, %c, %o, %x

    占位符含义及用法 代码: #include <stdio.h> int main(int argc, char const *argv[]) { , b = -; // 默认10进制赋值 ...

  2. [HNOI2015]亚瑟王(期望+DP)

    题解 利用期望的线性性,可以把问题转化为求每一个卡牌造成期望的期望值. 然后我们就需要知道每一个卡牌发动技能的概率. 因为当某一张卡牌发动技能时这一轮会结束,这就很难直接计算了. 我们使用DP 设dp ...

  3. MYSQL锁表问题的解决方法

    本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 mysql>show processlist; 参看sq ...

  4. Qt之QThread

    简述 QThread类提供了与系统无关的线程. QThread代表在程序中一个单独的线程控制.线程在run()中开始执行,默认情况下,run()通过调用exec()启动事件循环并在线程里运行一个Qt的 ...

  5. LeetCode 232: Implement Queue using Stacks

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...

  6. 编写SDR SDRAM页突发模式控制器的注意点-下篇

    本来是没打算写这些的,但是后面逐渐发现点问题,所以决定再写一个下篇来补充说明一下. 图一 细心的网友会发现上篇末尾的打印是有点问题的,因为我的数据产生器产生的是1-200,1-200,1-200,1- ...

  7. java9新特性-10-语法改进:UnderScore(下划线)使用的限制

    1.使用说明 在java 8 中,标识符可以独立使用“_”来命名:   但是,在java 9 中规定“_”不再可以单独命名标识符了,如果使用,会报错:    

  8. manacherO(n)求最长回文子串 hihocoder1032

    原文地址:https://segmentfault.com/a/1190000003914228   http://blog.csdn.net/synapse7/article/details/189 ...

  9. javascript 优秀写法

    http://www.csdn.net/article/2014-01-06/2818025-Useful-JavaScript-Tips-Best-Practices

  10. js封装each函数

    function each(ele,callback){ if(Object.prototype.toString.call(ele) == "[object Array]"){ ...