簡體   English   中英

如果文本中有換行符,如何擴展td的寬度?

[英]How to extend the width of a td if there are line breaks in the text?

我的桌子上有一些長文本和一些短文本。 如果<td>包含長文本,我想增加寬度。

這是我嘗試做的:

var text = $('td').text().split('\n');
if(text.length === 1) {
    $(this).css('width','270px');
}

的jsfiddle
我試圖用alert(text.length)得到alert(text.length)行的數量,我得到1。然后,如果有1個換行,我添加了.css('width','270px') ,但是不起作用。 我做錯了什么?

感謝幫助!

我對您認為要執行的操作感到不滿:

var $tds = $('td');

$tds.each(function(){

    var $td = $(this), length = $.trim($td.text()).length;

    if( length > 22 ) {
        $td.css('background-color', 'red');
    }

});

如果沒有,這應該使您更接近目標。 這是更新的小提琴: http : //jsfiddle.net/dsc4m/6/

從您的小提琴中,我猜您不能使用split('\\n')來檢測文本是否分成多行,因為這些換行符是由瀏覽器自動插入的,用於布局目的,並且它們在文本中不作為\\n存在。

我建議比較單元的渲染高度以計算內部的行數。

UPDATE

謝謝比爾,那是一個好點。 每行中的單元格始終具有相等的高度。 我想到的第一個解決方案是在單元格內部使用wrapper div。 它們只會擴展顯示文本所需的大小。 這不是“不錯”,但似乎可以完成工作: http : //jsfiddle.net/dsc4m/7/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM