概要: 因为之前的项目是angular开发(vue和react也是一样),对其中的双向数据绑定的使用感觉很方便,然后就思考怎么使用到jquery框架中来,适用于 列表生成

知识点: 正则与其反向引用,str.replace

html部分

<!--列表li 模板-->
<script type="text/html" id="row">
<li>
<h6 class="qa_title"><a href="qa_article.shtml?qid={{qid}}">{{title}}</a></h6>
<div class="qa_info c">
<span><i class="icon icon_visit"></i>浏览:{{view_num}}</span>
<span><i class="icon icon_commt"></i>回答:{{comoment_num}}</span>
<span class="fr"><i class="icon icon_date"></i>提问时间:{{add_time}}</span>
</div>
</li>
</script>

js部分,使用"\{\{(.+?)\}\}","igm",正则找到 $('#row') 下面的 {{}}包含的字段,

tempLi.replace(reg, function (node, key) {
return data.info[i][key];
});

将字段替换为内容

   getHostList:function(){
var request={}
request.page_type='get_hot_question_list';
request.page_num='0';
$.ajax({
url: Fields.url+'question',
data: request,
dataType: "json",
type: 'post',
async: false,
success: function (result) { //成功后回调
if(result.ret==0){
var data=result.info;
//列表数据
var reg = new RegExp("\{\{(.+?)\}\}","igm"); //匹配 {{}} 的内容
var tempLi = $("#row").html();
var html='';
for(var i=0;i<data.all_num-1;i++) {
if(!data.info[i])break;
html+= tempLi.replace(reg, function (node, key) {
return data.info[i][key];
});
}
$("#qa_hot_list").html(html);
}else{
Func.popShow('#pop');
$('#pop .jx_inf').text(result.info)
}
},
error: function(e){ //失败后回调 }
})

效果:

模拟模板替换功能--js的更多相关文章

  1. 模板插件aTpl.js新增功能

    摘要: aTpl.js是一款模板插件,该插件支持ie5+,chrome等浏览器以及移动端浏览器,支持for和if语法,以及表达式.最近对aTpl.js模板插件增加了新的功能,支持字符串模板,同时增加了 ...

  2. 模板引擎mustache.js

    Javascript模板引擎mustache.js详解   阅读目录 1. 从一个简单真实的需求讲起 2. mustache的用法 3. mustache的思想 4. {{prop}}标签 5. {{ ...

  3. Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二)

    Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二) 前言 上篇文章对Vue.js有了初步理解,接下来我们把Vue.js基础语法快速的过一遍,先混个脸熟留个印象就 ...

  4. 数据库的修改和删除;比较标签代替<,>,=号;模板替换;session的用法

    注: 1.session:系统默认开启;用途:防止跳过登录(只能访问登录方法);session和cookie的用法(手册->专题); 赋值:session('name','value'); 取值 ...

  5. 让前端独立于后端进行开发,模拟数据生成器Mock.js

    让前端独立于后端进行开发,模拟数据生成器Mock.jsMock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. Home · nuysoft/Mock Wiki ...

  6. 利用visual studio 搜索替换功能清除项目中javascript文件的debugger;

    在做web项目中,写js代码时候,会有一堆的debugger;,当时又懒得删,后面就多起来了,在vs的编辑器里面,其查找替换功能支持正则和整个项目/解决方案替换,这样就很容易删掉debugger;,方 ...

  7. Python3.5 day3作业一:实现简单的shell sed替换功能

    需求: 1.使python具有shell中sed替换功能. #!/usr/bin/env python #_*_conding:utf-8_*_ #sys模块用于传递参数,os模块用于与系统交互. i ...

  8. [word]用Word2007查找和替换功能批量设置图片位置

    Word2007的"查找和替换"功能并不仅仅可以对文字进行批量的查找替换,还有很多神奇的功能,比如对插入的图片位置进行批量的查找和调整等等. 今天我们就来试试Word2007的&q ...

  9. Visual Studio 2010 实用功能:使用web.config发布文件替换功能

    当建立ASP.NET Web应用程序项目后,默认除了生成web.config外,还生成了web.debug.config与Web.Release.config.顾名思义,根据它们的命名我可以推测到他们 ...

随机推荐

  1. 单词number 和 numeral 的区别

    原文: http://blog.sina.com.cn/s/blog_72cd06360100vn7t.html be of 的用法,相当于表征特征或属性的形容词. 简单地说,“of + 名词”等于“ ...

  2. Netty3 源代码分析 - NIO server绑定过程分析

    Netty3 源代码分析 - NIO server绑定过程分析      一个框架封装的越好,越利于我们高速的coding.可是却掩盖了非常多的细节和原理.可是源代码可以揭示一切. 服务器端代码在指定 ...

  3. overflow(超出部分省略号)

    溢出:overflow:visible/hidden/scroll/auto/inherit: visible:默认值.不剪切.hidden:超出部分剪切.没有滚动条.scroll:超出部分有滚动条. ...

  4. Linux下mount FreeBSD分区

    假设须要从第二块硬盘复制文件.该硬盘格式化为UFS 2文件系统.怎样mount 由FreeBSD创建的UFS 2文件系统到Ubuntu系统上呢? UFS文件系统广泛的使用在不同的操作系统(比如:HP- ...

  5. Tomcat配置,Myeclipse破解和各种设置

    转自:http://www.cnblogs.com/tyjsjl/archive/2006/11/14/2156111.html 根据tomcat来配置eclipse和MyEclipse结合使用起来, ...

  6. Hero In Maze

    Hero In Maze 时间限制(普通/Java):1000MS/10000MS          执行内存限制:65536KByte 描写叙述 500年前,Jesse是我国最卓越的剑客. 他英俊潇 ...

  7. CentOS笔记-系统概述

    Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动. 操作系统接管 ...

  8. OPENCV在ARM平台的移植

    两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...

  9. MySQL table

    -- 使用数据库hr use hr; -- 在数据库中创建表-- ------------------------------------JOBS表-------------------------- ...

  10. 利用WebViewJavascriptBridge与UIWebView进行交互

    事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...