js填充列表的几种方式

应用情景:在服务端返回一个json格式的列表数据,前端页面中需要使用js来绘制dom的时候

1,根据html模板按规则替换掉数据部分的实现方式

html模板

<!-- 模板 -->
<div style="display: none;">
<ul id="itemdataTempleteContent">
<li onclick="getPlan({itemdata_id});">
<span>名字:{itemdata_name}</span>
</li>
</ul>
</div>

js方法

//根据模板生成内容,在内容较多时使用字符串替换拼接操作来添加dom
    //模板中使用“{itemdata_XXX}”的格式来作为属性替换值的标示,遇到该标示则替换
    //@param templete 模板内容
    //@param data 数据行
    //@param format 格式化(如日期格式化),可以没有
    function getHtmlByTemplete(templete, data, format){
        return templete.replace(/{itemdata_([^}]+)}/g, function($0, $1){
            var v = data[$1] ;
            if( typeof(format) !== ‘undefined‘ && format !== null ){
                v = format($1, v) ;
            }
            return v ;
        }) ;
    }

填充代码片段

var templeteStr = XXX.innerHTML ;
    var content = XXXXX;
    var itemHtmlList = [] ;
    for(var i=0 ; i < list.length; i++){
        itemHtmlList.push(getHtmlByTemplete(templeteStr, list[i], itemdataFormatDate)) ;
    }
    content.innerHTML = itemHtmlList.join(‘‘) ; 

2,利用jquery的clone方法去根据模板生成dom,然后加入

数据大的时候不应该使用

3,利用js的字符串拼接方法

时间: 2024-10-09 04:07:23

js填充列表的几种方式的相关文章

JS刷新窗口的几种方式

浮层内嵌iframe及frame集合窗口,刷新父页面的多种方法 <script language=JavaScript> parent.location.reload(); </script> <script language=JavaScript> parent.location.reload(); </script> 弹出子页面 <script language=JavaScript> window.opener.location.reloa

js动态引入的四种方式

index.html [html] view plaincopy <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta content="text/html;charset=utf-8" http-equiv=&qu

为Node.js编写组件的几种方式

本文主要备忘为Node.js编写组件的三种实现:纯js实现.v8 API实现(同步&异步).借助swig框架实现. 关键字:Node.js.C++.v8.swig.异步.回调. 简介 首先介绍使用v8 API跟使用swig框架的不同: (1)v8 API方式为官方提供的原生方法,功能强大而完善,缺点是需要熟悉v8 API,编写起来比较麻烦,是js强相关的,不容易支持其它脚本语言. (2)swig为第三方支持,一个强大的组件开发工具,支持为python.lua.js等多种常见脚本语言生成C++组件

js实现继承的5种方式

js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承有以下通用的几种方式1.使用对象冒充实现继承(该种实现方式可以实现多继承)实现原理:让父类的构造函数成为子类的方法,然后调用该子类的方法,通过this关键字给所有的属性和方法赋值 Js代码   function Parent(firstname) { this.fname=firstname; this.age=40; this.sayAge=func

js如何实现继承(js实现继承的五种方式)

js继承有5种实现方式: 1.继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(this.username); } } function Child(username,password){ //通过以下3行实现将Parent的属性和方法追加到Child中,从而实现继承 //第一步:this.method是作为一个临时的属性,并且指向Parent所指向的对

js 实现继承的几种方式

//js中实现继承的几种方式 //实现继承首先要有一个父类,先创造一个动物的父类 function Animal(name){ this.name = name; this.shoot = function(){ console.log("yelp"); } } //动物的原型 Animal.prototype.eat = function(food){ console.log(name+"吃"+food); } //1.实例继承 var dog = new Ani

JS事件绑定的三种方式比较

js事件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> body{ width:100%; height:100%; } input{ display: block; margin-bottom:10px; } .active{ color:

Js 类定义的几种方式

提起面向对象我们就能想到类,对象,封装,继承,多态.在<javaScript高级程序设计>(人民邮电出版社,曹力.张欣译.英文名字是:Professional JavaScript for Web Developers)这本书中描述的还算比较详细.我们看看JavaScript中定义类的各种方法. 1.工厂方式 javaScript中创建自己的类和对象,我们应该是必须掌握的,我们都知道javaScript中对象的属性可以在对象创建后动态定义,比如下面的代码: <script type=&q

JS调用webservice的两种方式

协议肯定是使用http协议,因为soap协议本身也是基于http协议.期中第二种方式:只有webservice3.5以后版本才可以成功 第一种方式:构造soap格式的body,注意加粗的黄色标识,比如: createXMLHttpRequest();     var data;     data = '<?xml version="1.0" encoding="utf-8"?>';     data = data + '<soap:Envelope