javascript - Jquery表html输出不正确

标签 javascript jquery html

我有下面的 jQuery 接收来自 AJAX 请求的响应来构建一个表,但是每个似乎在其下面的追加之后被触发,我如何确保在每个完成之前该表不会关闭。

$.ajax({
    type: "POST",
    url: "api/getFirmTabletsDetails.php",
    data: "id=" + firmID,
    cache: false,
    dataType: "json",
    success: function(result)
    {
        var tabletArea = modal.find('#tablet-body');
        tabletArea.html("");
        tabletArea.append
        (
            '<div class="col-lg-12">
             <table class="table table-hover table-striped"><thead>
             <tr><th>Name</th><th>Status</th><th>Address</th></tr>
             </thead><tbody>'
        );
        if (result.success = 1)
        {
            $.each(result.request, function( index, value )
            {
                var address = value.Street + "<br>" + value.Street2 + "<br>" 
                              + value.Town + "<br>" + value.County +  "<br>" 
                              + value.Postcode;
                tabletArea.append('<tr><td>'+value.Name+
                '</td><td>'+value.Status+'</td><td>'+address+'</td></tr>');
            });
        }else{
            alert(result.error);
        }
        tabletArea.append('</tbody></table></div></div>');
    }
});

输出:

<html>
  <head>
    <title></title>
  </head>
  <body>
    <div class="modal-body" id="tablet-body">
      <div class="col-lg-12">
        <table class="table table-hover table-striped">
          <thead>
            <tr>
              <th>Name</th>
              <th>Status</th>
              <th>Address</th>
            </tr>
          </thead>
        </table>
      </div>
      <table>
        <tr>
          <td>...</td>
          <td>...</td>
          <td>...
          <br />...
          <br />...
          <br />...
          <br />...</td>
        </tr>
        <tr>
          <td>...</td>
          <td>...</td>
          <td>...
          <br />...
          <br />...
          <br />...
          <br />...</td>
        </tr>
      </table>
    </div>
  </body>
</html>

最佳答案

You are using append method incorrectly.

正如您在官方文档中所读到的,append( content ) 接受一个参数,该参数可以是 DOM 元素、文本节点、元素和文本节点数组、HTML 字符串或 jQuery要插入到匹配元素集中每个元素末尾的对象。 您在这里所做的是重复传递字符串片段。您应该传递要附加的元素的完整 htmlString。如果您想采用类似于您已经在做的方法,您可以保留一个字符串并不断向其中添加元素。完成后,您可以将字符串一次传递到 append(content) 方法。检查下面给出的代码:

$.ajax({
    type: "POST",
    url: "api/getFirmTabletsDetails.php",
    data: "id=" + firmID,
    cache: false,
    dataType: "json",
    success: function(result){
        var tabletArea = modal.find('#tablet-body');
        tabletArea.html("");
        var htmlString = "";
        htmlString += '<div class="col-lg-12"><table class="table table-hover table-striped"><thead><tr><th>Name</th><th>Status</th><th>Address</th></tr></thead><tbody>';
        if (result.success = 1){
            $.each(result.request, function( index, value ) {

            var address = value.Street + "<br>" + value.Street2 + "<br>" + value.Town + "<br>" + value.County + "<br>" + value.Postcode;

            htmlString += '<tr><td>'+value.Name+'</td><td>'+value.Status+'</td><td>'+address+'</td></tr>';

            });
        }else{
            alert(result.error);
        }
        htmlString += '</tbody></table></div></div>';

        tabletArea.append( htmlString );

    }
    });

关于javascript - Jquery表html输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38565465/

相关文章:

JavaScript 图像裁剪/矩形选择图像

javascript - 脚本不考虑 anchor 位置

javascript - 在另一个内部动态创建 div

javascript - 根据条件授予用户对 URL 的访问权限(Angularjs)

CSS 元素无法向左移动

javascript - 单元测试 Mootools 代码的最佳解决方案

javascript - ajax请求,查询数据库,json_encode,成功返回,显示结果

javascript - 如何停止 html 属性中 onclick 事件的事件传播?

javascript - 使用 isNaN 来计算输入

c# - HTML 操作链接 asp.net mvc