js中拼接HTML方式方法及注意事項


博主原創:未經博主允許,不得轉載

在前端應用中,經常需要在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>';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM