js拼接html有没有比较快的方法?

    <div class="formcode clearfix">
        <div class="title">新建用户<div class="xicon">x</div></div>
        <div class="formbox">
            <form action="">
                <p><span><label>* </label>用户名</span><input type="text" placeholder="数字/中英文组合,5-20位字符"></p>
                <p><span><label>* </label>登录密码</span><input type="text"></p>
                <p><span><label>* </label>确认密码</span><input type="text"></p>
                <p><span><label>* </label>员工姓名</span><input type="text"></p>
                <p><span><label>* </label>用户角色</span></p>
                <p><span><label>* </label>联系手机</span><input type="text"></p>
                <div class="tips">用户角色决定用户权限,请到角色管理系统统一设置</div>
                <input type="button" value="保存">
            </form>
        </div>
    </div>

拼接这样一段html 有没有技巧 或者简化方法


阅读 6.5k
6 个回答
<script id="我是模板" type="text/html">
    <div class="formcode clearfix">
        <div class="title">新建用户<div class="xicon">x</div></div>
        <div class="formbox">
            <form action="">
                <p><span><label>* </label>用户名</span><input type="text" placeholder="数字/中英文组合,5-20位字符"></p>
                <p><span><label>* </label>登录密码</span><input type="text"></p>
                <p><span><label>* </label>确认密码</span><input type="text"></p>
                <p><span><label>* </label>员工姓名</span><input type="text"></p>
                <p><span><label>* </label>用户角色</span></p>
                <p><span><label>* </label>联系手机</span><input type="text"></p>
                <div class="tips">用户角色决定用户权限,请到角色管理系统统一设置</div>
                <input type="button" value="保存">
            </form>
        </div>
    </div>
</script>
<script>
    let _template = document.getElementById('我是模板').innerHTML;
</script>

如果你是ES6无须拼接,直接将HTML拉到 `` 里面。

当然,在现代浏览器里面,比较快的办法就是 [].join('') 了。

es6写法:


let str = `
    <div class="formcode clearfix">
        <div class="title">新建用户<div class="xicon">x</div></div>
        <div class="formbox">
            <form action="">
                <p><span><label>* </label>用户名</span><input type="text" placeholder="数字/中英文组合,5-20位字符"></p>
                <p><span><label>* </label>登录密码</span><input type="text"></p>
                <p><span><label>* </label>确认密码</span><input type="text"></p>
                <p><span><label>* </label>员工姓名</span><input type="text"></p>
                <p><span><label>* </label>用户角色</span></p>
                <p><span><label>* </label>联系手机</span><input type="text"></p>
                <div class="tips">用户角色决定用户权限,请到角色管理系统统一设置</div>
                <input type="button" value="保存">
            </form>
        </div>
    </div>
`

然后用babel转成es5.

  1. 使用ES6字符串(优点:简单,性能好;缺点:不支持循环等扩展功能)

  2. 使用模板引擎(优点:灵活,支持循环等功能;缺点:不同模板引擎模板语言不太一样,性能稍逊直接拼接)

Reactjsx :)
一般情况下的话可以用domNode.innerHTML([your html tags].join(''))

搜索一下 artTemplate,很方便,只有 5k 大小,腾讯的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题