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如果您愿意修改它来更新您的答案,这是我的小提琴,因为它被标记为已接受。没问题。很高兴大家都能把事情弄清楚!没问题。很高兴大家都能把事情弄清楚!