概要: 因为之前的项目是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. 取汉子拼音首字母的VB.Net方法

    '/ <summary> '/ 获得一个字符串的汉语拼音码 '/ </summary> '/ <param name="strText">字符串 ...

  2. BUPT复试专题—哈夫曼编码(2009)

    题目描述 哈夫曼编码中  平均码长=码长×码字出现的概率 如:ABCDE 五个字符的出现次数分别为50 20 5 10 15 那么,其哈夫曼编码为A:0   B:10   C:1110   D:111 ...

  3. 在windows Server 2008 R2server上使用infopath不能将表单公布到sharepoint server的问题处理。

    在server 2008 R2 中.你将做好的表单公布到Sharepoint 时候会报错: 这个情况在client是2008 R2 Server 就会出现这个结果. 在角色中启用桌面体验就可以

  4. 随着ScrollView的滑动,渐渐的运行动画View

    今天是实现了一个小功能的东西.看看效果图: 实现方式: 1.自己定义ScrollView   复写onScrollChange方法,来计算滑动的位置. 2.自己定义接口,通过接口来在ScrollVie ...

  5. Metasploit学习笔记之——情报搜集

    1.情报搜集 1.1外围信息搜索 1.1.1通过DNS和IP地址挖掘目标网络信息 (1)whois域名注冊信息查询(BT5.kali专有):root@kali:~# whois testfire.ne ...

  6. 使用Swift作为Glance后端存储

    原文链接 http://thornelabs.net/2014/08/03/use-openstack-swift-as-a-backend-store-for-glance.html By defa ...

  7. centos 7.xx 安装LAMP环境

    一.安装Apache 1.安装yum -y install httpd2.开启apache服务systemctl start httpd.service3.设置apache服务开机启动systemct ...

  8. 命令行添加PATH

    如何设置PATH 命令:echo "export PATH=xxxxxx:$PATH" >> ~/.bash_profile 解释:把"export PATH ...

  9. leetcode -day17 Path Sum I II &amp; Flatten Binary Tree to Linked List &amp; Minimum Depth of Binary Tree

    1.  Path Sum Given a binary tree and a sum, determine if the tree has a root-to-leaf path such tha ...

  10. Boom!!!计算机系统,从理解到爆炸,Bomblab

    进入文件夹下 ./bomb 開始执行炸弹 对于炸弹command not found之类的鬼畜情况: chmod 777 bomb 然后再执行炸弹 objdump -d bomb > bomb. ...