2016-07-13 27 views
3

我有一個包含從數據庫加載的內容的HTML表。在某些領域,我有鏈接用於將員工鏈接到他們的內部個人資料。用HTML標題中的title屬性值替換<a>元素

準備就緒後,我克隆表並將其變爲global,然後再對其運行dataTables,因此我擁有一個乾淨的HTML表。在導出表格時,我使用unwrap來擺脫html鏈接。

在我的其中一個字段中,我使用的工具提示顯示標題的截短版本和懸停時的完整版本。

<a title="Super Long Title that is not truncated" data-toggle="tooltip" style="cursor:help">Super Long Title that is...</a> 

我要試圖找出我怎麼能與<a title="">值而不是unwrapped值將截短版本替換列的內容。有什麼想法嗎?

下面是運行時導出按鈕被點擊代碼:

var openTickets; 
openTickets = $('#openTable').clone(); 

// ... 

$('#export').click(function() {  
    openTickets.find('a').contents().unwrap(); 

    // Export our table (Given html table, export to excel) 
    tableToExcel.download(openTickets.html(), 'Open Tickets - Export', 'xls', 'L'); 
}); 

回答

3

要做到這一點,你可以通過一個函數到replaceWith(),它返回a元素的title,如下所示:

$('#export').click(function(){ 
    openTickets.find('a').replaceWith(function() { 
     return $(this).prop('title'); 
    }); 
    tableToExcel.download(openTickets.html(), 'Open Tickets - Export', 'xls', 'L'); 
}); 

Working example

0

嘗試之前,你unwrap()改變爲tags文本:

$('#export').click(function(){ 

    //Add this 
    openTickets.find('a[data-toggle="tooltip"]').each(function(){ 
    $(this).html($(this).attr('title')) 
    }) 

    openTickets.find('a').contents().unwrap();