2014-05-25 134 views
0

Fiddle Example保持相同的高度和寬度的文本後(「」)

Updated Example

會有人請告訴我如何使表保持高度和寬度相同的內容被刪除後。我想確保表格中的每個td,th,tr在使用text()清除內容後不會發生一點變化。我想這樣做的原因是因爲在從AJAX注入數據後,表格固定標頭腳本有一些滾動問題。我需要看看text();之後高度和寬度的變化是否是問題的原因。

我的嘗試在每次點擊時都會縮小表格。

$('#cleartable').on('click', function() { 

    var clear = $(".toptable td,.toptable th"); 
    var tableheight,tablewidth; 
    clear.each(function(){ 
    tableheight = $(this).height(),tablewidth = $(this).width(); 

    }); 
    clear.filter(function() { 
     return $(this).index() !== 0;  
    }).text(''); 
    clear.css("width",tablewidth).css("height",tableheight); 

}); 

HTML:

<button id="cleartable">Change</button> 
<table class="toptable"> 
    <tr> 
     <th class="image">-</th> 
     <th class="image">-</th> 
     <th class="image">-</th> 
    </tr> 
    <tr> 
     <td class="description">Name</td> 
     <td class="description">Alan</td> 
     <td class="description">John</td> 
    </tr> 
    <tr> 
     <td class="title">Age</td> 
     <td class="title">8</td> 
     <td class="title">9</td> 
    </tr> 
</table> 
+1

先給表中的一些高度和寬度,然後嘗試 –

+0

爲@ M.chaudhry所述第一給該表的一些寬度和高度,並添加功能,以保持它 – anni

回答

3

指定的<td>元件(使用在這種情況下,.css()方法)在刪除文本的內容之前的height/width

$('#cleartable').on('click', function() { 
    // selecting the td:first-child elements 
    $('table.toptable td:first-child') 
    // moving to select the siblings: 
    .siblings() 
    // adjusting the css: 
    .css({ 
     // i: the index of the current element over which we're iterating, 
     // h: the current value of the property we're manipulating (before adjustment), 
     // these names are arbitrary, and can be anything (I use these variable-names 
     // simply as a matter of personal taste, to represent the property I'm working 
     // with): 
     'height' : function(i,h){ 
      return h 
     }, 
     'width' : function(i,w){ 
      return w 
     } 
    }).text(''); 
}); 

JS Fiddle demo

參考文獻:

+0

謝謝。它解決了我的固定表頭問題! – RedGiant

+0

我很高興得到了幫助!但請注意,單擊按鈕時會發生一些*邊際*重新調整大小的情況。儘管我不知道爲什麼。 –

+0

@ user35295不確定你的身邊,但我已嘗試在原始演示**中使用此答案中的代碼**,但它仍然無法幫助。你的原始演示有一些非常特別的**。首先,'border-spacing'沒有任何理由。其次,即使我在我自己的演示中嘗試過'border-spacing:0',邊框看起來很厚,不像您的那樣平滑。在演示中只有一些**外部資源**不同,但看起來我們無法刪除該資源(jsfiddle中的某種錯誤)。 –

相關問題