首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据按钮pdfHtml5 exportOptions以删除嵌套标记

数据按钮pdfHtml5 exportOptions以删除嵌套标记
EN

Stack Overflow用户
提问于 2016-07-28 13:25:58
回答 1查看 1.8K关注 0票数 0

我正在尝试优化一个页面的“数据表”按钮pdfHtml5导出。表数据包含嵌套的html标记,它们在单元数据之上和下面创建额外的空间,这使得PDF非常长。

我的单元格中的文本用两个嵌套的<div>和一个<p>包装。在PDF导出中,我只需要<p>的内容

代码语言:javascript
复制
<td>
  <div class="flagimg" style="background-image: url(...)">
    <div class="flagtext">
      <p>name of country</p>
    </div>
  </div>
</td>

我正在尝试使用exportOptions删除嵌套的html标记,但我不确定如何正确地编写语法。有人能帮我吗?

代码语言:javascript
复制
$(document).ready(function() {
   var buttonCommon = {
     exportOptions: {
       format: {
         body: function(data, column, row) {
           data = data.replace(/<div class="flagtext"\">/, '');
           data = data.replace(/<.*?>/g, "");
           return data;
         }
       }
     }
   };
  var oTable = $('#example').DataTable({
    dom: 'Bfrtip',
    buttons: [
        $.extend( true, {}, buttonCommon, {
            extend: 'copyHtml5'
        } ),
        $.extend( true, {}, buttonCommon, {
            extend: 'excelHtml5'
        } ),
        $.extend( true, {}, buttonCommon, {
            extend: 'pdfHtml5'
        } )
    ]
  });
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-29 11:31:59

我终于发现问题不在于嵌套的div (),而是标记缩进代码中,而不是放在一行上。我已经向Datatable报告了这个问题,我在这里记录了这个问题,以防其他人碰到它。

我建立在@davidkonrad所做的小提琴上来说明正在发生的事情。

https://jsfiddle.net/lbriquet/7f08n0qa/

在第一行中,嵌套标记在代码中缩进.这会产生PDF导出中国家名称数据上方和下面的额外空间。

在第二行中,我将所有的标记放在同一行代码中.在PDF输出中不产生额外的间距。

代码语言:javascript
复制
<table id="example" width="100%" border="0" cellspacing="0" cellpadding="0" >
  <thead>
    <tr>
      <th>Name</th>
      <th>Position</th>
      <th>Office</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <div class="myclass"><a href="#">Company name</a>
        </div>
      </td>
      <td>
        <div class="flagimg" style="background-image: url(#">
          <div class="flagtext">
            <p>Country name</p>
          </div>
        </div>
      </td>
      <td>
        <div class="myclass">Product sold</div>
      </td>
    </tr>
    <tr>
      <td>
        <div class="myclass"><a href="#">Company name</a>
        </div>
      </td>
      <td><div class="flagimg" style="background-image: url(#)"><div class="flagtext"><p>Country name</p></div></div>
      </td>
      <td>
        <div class="myclass">Product sold</div>
      </td>
    </tr>
  </tbody>
</table>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38637794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档