zoukankan      html  css  js  c++  java
  • ajax获取数据后怎么去渲染到页面?

         关于,这个问题呢!一直没有在网上找到一个合适答案(可能这问题比较傻,嘿嘿)。今天把自己常用几种方式说下:

         第一种:

         比较常见的就是直接把字符串拼接,然后插入到元素中。

         

    var html='<li>' + data.num + '</li><li>' + data.floor + '</li><li>' + data.name + '</li><li>' + data.money + '</li>';
    
    elem.innerHTML=html;

         第二种:

         与第一种大致,先创建对象,然后添加到外层对象中

    var node=document.createElement("LI");
    var textnode=document.createTextNode("Water");
    node.appendChild(textnode);
    document.getElementById(
    "myList").appendChild(node);

        第三种:

        可以用网上mvvm框架,数据绑定比如:angular ,vue等 这里不举例子了 哈哈

      

        第四种:

        模板的比如 (template.js)

        我自己写个小例子,不要喷我啊

        

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
    
        <body>
            <div id="con"></div>
            <script>
                var viewCommand = function() {
                    var tpl = {
                        product: ["<div>",
                            "<img src={#srcs#} />",
                            "<p>{#text#}</p>",
                            "</div>"
                        ].join(""),
                        title: [
                            "<div class='title'>",
                            "<div class='main'>",
                            '<h2>{#title#}</h2>',
                            '<p>{#tips#}</p>',
                            "</div>",
                            "</div>",
                        ].join("")
                    };
                    var html = "";
                    var formateString = function(str, obj) {
                        return str.replace(/{#(w+)#}/g, function(match, key) {
                            console.log(match + obj[key])
                            return obj[key];
                        })
                    };
                    var Action = {
                        create: function(data, view) {
                            if(data.length) {
                                for(var i = 0; i < data.length; i++) {
                                    html += formateString(tpl[view], data[i])
                                }
                            } else {
                                html += formateString(tpl[view], data);
                            }
                        },
                        display: function(conta, data, view) {
                            if(data) {
                                this.create(data, view)
                            }
                            document.getElementById(conta).innerHTML = html;
                            html = "";
                        }
                    };
                    return function excute(msg) {
                        msg.param = toString.call(msg.param) == "[object Array]" ? msg.param : [msg.param];
                        Action[msg.command].apply(Action, msg.param);
                    }
                }();
                var tit = {
                    tips: "飒飒飒飒是",
                    title: "安县阿萨斯",
    
                }
                var product = [{
                    "srcs": "../images/qq.png",
                    "text": "qqqq"
                }, {
                    "srcs": "../images/weixin.png",
                    "text": "qq"
                }]
                viewCommand({
                    command: "create",
                    param: [ tit, "title"]
                })
    
                viewCommand({
                    command: "create",
                    param: [ product, "product"]
                })
                viewCommand({
                    command: "display",
                    param: ["con"]
                })
            </script>
        </body>
    
    </html>

        我了解大致就这些,大家可以说说自己的,同时欢迎提问题 

  • 相关阅读:
    伟景行 citymaker 从入门到精通(2)——工程图层树加载
    伟景行 citymaker 从入门到精通系列
    伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件
    Android手机屏幕投射到电脑神器Vysor
    GeoTools坐标转换(投影转换和仿射变换)
    微信开发系列(1):企业号回调模式认证
    通过扩大IE使用内存,解决skyline在IE下模型不能加载的方法
    SDE ST_Geometry SQL st_intersects查询很慢的解决方法
    axTE3DWindowEx双屏对比控件白屏解决方法以及网上方法的校正(CreateControlOveride)
    namespace使用方法
  • 原文地址:https://www.cnblogs.com/hsp-blog/p/5811478.html
Copyright © 2011-2022 走看看