博主原创:未经博主允许,不得转载

在前端应用中,经常需要在js中动态拼接HTML页面,比如应用ajax进行局部刷新的时候,就需要在js中拼接HTML页面。

主要规则是将HTML页面的标签拼接为标签字符创,要特别注意的是标签中的变量或数值。

举例如下:

<div class="tab-content"  id="summaryContent" style="padding: 0px 15px;"></div>

在上述的div中拼接页面。拼接页面的内容如下:

function loadComment(){
               $.ajax({
                   url:'<%=basePath%>actManage/getSummaryStatics',
                   type:'POST',
                   data:{"activityId":"${actInfo.activityId}"},
                   dataType:'json',
                   success:function(data){
                       //拼接列表页面
                       var tableContent = "";
                       var commentCount = data.commentCount;
                       var askCount = data.askCount;
                       var voicingCount = data.voicingCount;
                       tableContent += '<div class="tab-pane fade active in" id="nav-pills-tab-1" style="height:48%;overflow-y:auto">';
                       tableContent += '<table class="table table-hover" style="margin: 0px">';
                       if(commentCount>0){
                           $.each(data.commentList,function(i){
                               var commentInfo = data.commentList[i];
                               var num = i+1;
                               var commentId = commentInfo.commentId;
                               var activityId ='${actInfo.activityId }';
                               tableContent += '<tr style="border-bottom: 1px solid #e2e7eb; word-wrap:break-word;word-break:break-all;">';
                               tableContent += '<td ><span class="badge badge-info">'+num+'</span></td>';
                               tableContent += '<td ><a href="javascript:void(0);" onclick=delComment("'+commentInfo.commentId+'","'+activityId +'") class="btn btn-white m-r-5"><i class="fa fa-trash-o"></i></a></td>';
                               tableContent += '<td >'+commentInfo.content +'</td>';
                               tableContent += '</tr>';
                           })
                       }else{
                           tableContent += '<div style="text-align:center;vertical-align:middle;padding-top:80px;font-size:24px;">暂无评论</div>  ';
                       }
                       tableContent += '</table>';
                       tableContent += '</div>';

//将拼接的页面放入列表里面
                       $("#summaryContent").html(tableContent);

},

error:function(){

var tableContent = " ";

tableContent += '<div class="tab-pane fade active in" id="nav-pills-tab-1" style="height:48%;overflow-y:auto">';
                                tableContent += '<table class="table table-hover" style="margin: 0px">';

tableContent += '<div style="text-align:center;vertical-align:middle;padding-top:80px;font-size:24px;">暂无评论</div>  ';

tableContent += '</table>';
                                tableContent += '</div>';

//将拼接的页面放入列表里面
                                $("#summaryContent").html(tableContent);

}

注意事项:

1.在HTML页面中拼接时,需要特别注意含有事件的拼接以及拼接事件中的参数形式。

本人亲自经历:在刚开始拼接时,拼接的形式为:

<a href="javascript:void(0);" onclick="delComment('+commentInfo.commentId+','+activityId +');" class="btn btn-white m-r-5"><i class="fa fa-trash-o"></i></a>

拼装好之后,进行触发的时候,一直没有反应,原因是里面的参数的格式不能识别,需要将其变为字符串形式。正确的拼装形式为:

<a href="javascript:void(0);" onclick=delComment("'+commentInfo.commentId+'","'+activityId +'") class="btn btn-white m-r-5"><i class="fa fa-trash-o"></i></a>

拼装好之后,点击进行触发就可识别。

2.当拼装的HTML里面需要获取后台中的值时,也可以用jQuery的形式获取:${userId}。

不过在拼装的时候,尽量先将他获取出来,然后再拼装页面的时候,直接使用就好了,避免出错的几率。

3.标签中间的文本中变量的使用拼接方式:

tableContent += '<td ><span class="badge badge-info">'+num+'</span></td>';

js中拼接HTML方式方法及注意事项的更多相关文章

  1. js中数组的定义方法及注意事项(转)

    1.数组的创建 var name= new Array(); //创建一个数组 name[0]="zhangsan";   //给数组赋值 name[1]="lisi&q ...

  2. 在js中拼接<a>标签,<a>标签中含有onclick事件,点击无法触发该事件

    我们在<a>标签中添加事件一般是onclick="editUser()" 这样添加,在html页面上是行的通的 但是如何你是在js中拼接<a>标签并在< ...

  3. 【jQuery】JS中拼接URL发送GET请求的中文、特殊符号的问题

    > 参考的优秀文章 jQuery ajax - param() 方法 经常,我们需要在JS中拼接URL然后以GET形式提交请求.如果遇到中文.特殊符号则需要作各种处理. jQuery有一个方法非 ...

  4. node.js中的url.parse方法使用说明

    node.js中的url.parse方法使用说明:https://blog.csdn.net/swimming_in_it_/article/details/77439975 版权声明:本文为博主原创 ...

  5. JS中定义类的方法

    JS中定义类的方式有很多种: 1.工厂方式    function Car(){     var ocar = new Object;     ocar.color = "blue" ...

  6. JS中令人发指的valueOf方法介绍

    彭老湿近期月报里提到了valueOf方法,兴致来了翻了下ECMA5里关于valueOf方法的介绍,如下: 15.2.4.4 Object.prototype.valueOf ( ) When the ...

  7. JS中定义类的方法<转>

    转载地址:http://blog.csdn.net/sdlfx/article/details/1842218 PS(个人理解): 1) 类通过prototype定义的成员(方法或属性),是每个类对象 ...

  8. JS中的对象和方法简单剖析

    众所周知,在js中对象就是精髓,不理解对象就是不理解js. 那么什么事js中的对象呢? 在js中,几乎一切皆对象: Boolean ,String,Number可以是对象(或者说原生数据被认作对象): ...

  9. JS中对象继承方式

    JS对象继承方式 摘自<JavaScript的对象继承方式,有几种写法>,作者:peakedness 链接:https://my.oschina.net/u/3970421/blog/28 ...

随机推荐

  1. python中执行shell命令行read结果

    +++++++++++++++++++++++++++++ python执行shell命令1 os.system 可以返回运行shell命令状态,同时会在终端输出运行结果 例如 ipython中运行如 ...

  2. 修改lastpass主密码后需重启firefox才能加载已保存的站点密码或用导入工具

    最近索尼事件闹得沸沸扬扬,预防黑客先从升级密码开始.由于开发的需要一般是用firefox作为默认的浏览器,很早以前就装了lastpass密码管理器作为必备附加组件,在注册时按一下Alt+G就会帮你生成 ...

  3. word转pdf时图片质量下降的解决方案__亲测有效

    写论文时经常需要将word文档转成pdf文档,通常的做法是word另存为pdf文档,这样很简洁很方面,可是最大的问题是图片质量会大大下降.究其原因,“另存为”选项会压缩图片,以降低pdf文档的大小.解 ...

  4. Django中的admin组件分析

    admin的使用介绍 django-admin的使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 setting ...

  5. Django-made基础

    知识预览 ORM 创建表(建立模型) 添加表记录 查询表记录 修改表记录 删除表记录 回到顶部 ORM 映射关系: 表名 <-------> 类名 字段 <-------> 属 ...

  6. discuz完善用户资料任务不能完成的解决方法

    再来吐槽下discuz. 虽然很很很不想用discuz,但是,,,,..便利性以及各种原因,还得使用. 问题:discuz-运营-任务-完善资料,,,,,,变更部分后无法完成任务. 解决方式如下 原因 ...

  7. zw版【转发·台湾nvp系列Delphi例程】HALCON FastThreshold1

    zw版[转发·台湾nvp系列Delphi例程]HALCON FastThreshold1 procedure TForm1.Button1Click(Sender: TObject);var img ...

  8. 20154312 曾林 Exp5_MSF基础应用

    --目录-- MSF渗透测试-CVE-2017-11882 1.基础内容回答 2.实践过程记录 2.1.主动攻击实践-ms08_067 2.2.针对浏览器的攻击-ms10_046 2.3.针对客户端的 ...

  9. ng-深度学习-课程笔记-0: 概述

    课程概述 这是一个专项课程(Specialization),包含5个独立的课程,学习这门课程后做了相关的笔记记录. (1) 神经网络和深度学习 (2)  改善深层神经网络:超参数调试,正则化,优化 ( ...

  10. Java应用开发的一条重要经验:先建立基础设施

    一旦为应用建立良好的基础设施, 后续的开发就会变得容易而快速.这些基础设施包括: 1.    线程池的建立与配置: 在 JDK 并发库的基础上建立适合于应用的多任务接口和框架: 2.   外部系统服务 ...