Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果文本中有换行符,如何扩展td的宽度?_Javascript_Jquery_Html Table - Fatal编程技术网

Javascript 如果文本中有换行符,如何扩展td的宽度?

Javascript 如果文本中有换行符,如何扩展td的宽度?,javascript,jquery,html-table,Javascript,Jquery,Html Table,我有一张桌子,上面有一些长文本和一些短文本。如果包含长文本,我希望增加宽度 这就是我试图做的: var text = $('td').text().split('\n'); if(text.length === 1) { $(this).css('width','270px'); } 我试图用alert(text.length)获得换行数,结果得到1。然后,如果我添加了一个换行符.css('width','270px'),但不起作用。我做错了什么 谢谢你的帮助 我尝试了一下你想做的事

我有一张桌子,上面有一些长文本和一些短文本。如果
包含长文本,我希望增加宽度

这就是我试图做的:

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

我试图用
alert(text.length)
获得换行数,结果得到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');
    }

});
如果不是,这会让你离目标更近。这里有一个更新的提琴:

我尝试了一下你想做的事情:

var $tds = $('td');

$tds.each(function(){

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

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

});

如果不是,这会让你离目标更近。这里有一个更新的fiddle:

从您的fiddle中,我想您不能使用
拆分('\n')
来检测文本是否分成多行,因为这些换行符是由浏览器出于布局目的自动插入的,并且它们在文本中不以
\n
的形式存在

我建议比较单元的渲染高度,以计算单元内部的线数

更新


谢谢比尔,这是一个很好的观点。每行中的单元格高度始终相等。我想到的第一个解决方案是在单元格中使用包装div。它们仅根据显示文本的需要进行扩展。这并不“好”,但它似乎起到了作用:

从你的小提琴上看,我想你不能使用
split('\n')
来检测文本是否分成多行,因为这些换行符是由浏览器出于布局目的自动插入的,并且它们在文本中不以
\n
的形式存在

我建议比较单元的渲染高度,以计算单元内部的线数

更新



谢谢比尔,这是一个很好的观点。每行中的单元格高度始终相等。我想到的第一个解决方案是在单元格中使用包装div。它们仅根据显示文本的需要进行扩展。这不是“好的”,但它似乎很好地完成了任务:

您拼写的
length
错误-应该是
length
您需要
表格布局:修复?如果没有它,它将根据我已更正的@smj2393中的内容正确调整列的大小,但这不是问题。我认为
可能具有错误的范围。你想在
td
有换行符时立即扩展它吗?@mackiee我需要使用
表格布局:修复因为我想得到
断字:断字在td上。您拼写的
长度
错误-应该是
长度
是否需要
表格布局:固定?如果没有它,它将根据我已经更正的@smj2393中的内容正确调整列的大小,但这不是问题。我认为
this
可能有错误的范围。你想在
td
有换行符时立即扩展它吗?@mackiee我需要使用
表格布局:修复因为我想得到
断字:断字关于td。啊,另一个有趣的假设!非常感谢@ToniTornado。很高兴听到它帮助了你。我想知道你为什么不在这张桌子上做自动布局。。。?如果有必要,浏览器会扩展行。我只是尝试更新我的答案。。。所有的细胞高度都是一样的。您可能需要根据单元格文本中的字符数来更新答案。@ToniTornado如果您愿意修改它来更新您的答案,这是我的小提琴,因为它被标记为已接受。啊,另一个有趣的假设!非常感谢@ToniTornado。很高兴听到它帮助了你。我想知道你为什么不在这张桌子上做自动布局。。。?如果有必要,浏览器会扩展行。我只是尝试更新我的答案。。。所有的细胞高度都是一样的。您可能需要根据单元格文本中的字符数来更新答案。@ToniTornado如果您愿意修改它来更新您的答案,这是我的小提琴,因为它被标记为已接受。没问题。很高兴大家都能把事情弄清楚!没问题。很高兴大家都能把事情弄清楚!