jquery,js获取列总宽度减去所有td列加起来的宽,求剩余 我需求是这样:除了详细地址,其他列展示完还有空间的话,才去把详细地址展示出来我的思路是 这样:总宽度减去所有td加起来的宽度,求剩余请问我思路怎么实现,如果有别的思路也可以教教我,比较急,求你们了大神 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 td width不要定宽,然后td里面的内容用inline元素(如span,label)包起(js添加这个操作也行),然后计算这些span,label的总宽度及高度(如果高度不为一行的高度时说明换行了不够容下操作列),而不是直接计算td的,大概如下<script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.7.1/jquery.min.js"></script><table border="1" id="mytb"> <tr><td>中国忍受</td><td>中国忍受</td><td>中国忍受中国忍受</td><td>详细地址</td></tr> <tr><td>中国忍受</td><td>中国忍受</td><td>中国忍受中国忍受</td><td>中国忍受</td></tr> <tr><td>中国忍受</td><td>中国忍受</td><td>中国忍受中国忍受</td><td>中国忍受</td></tr></table><script> var newLine = false, totalTdContentWidth = 0, maxTotalTdContnetWidth = -1, lineHeight = 0 , tableWidth = 330;//自己修改表格宽度测试 $('#mytb').attr('width',tableWidth).find('tr').each(function () { totalTdContentWidth = 0; $('td:not(:last-child)', this).each(function () { var s = this.innerHTML; if (lineHeight == 0) {//获取行高 this.innerHTML = '<div style="width:' + this.offsetWidth + 'px;height:' + this.offsetHeight + 'px;overflow:hidden"><div style="width:999px"><span>' + this.innerHTML + '</span></div></div>'; lineHeight = this.firstChild.firstChild.offsetHeight; } this.innerHTML = '<span>' + s + '</span>'; if (this.firstChild.offsetHeight > lineHeight) { newLine = true; return false }//换行 totalTdContentWidth += this.firstChild.offsetWidth; }); if (newLine) return false; maxTotalTdContnetWidth = Math.max(maxTotalTdContnetWidth, totalTdContentWidth);//获取每行中内容中最大宽度 }); //执行隐藏操作 if (newLine ||//td中出现换行 maxTotalTdContnetWidth > tableWidth - 60//每行总宽度大于table宽度-详细地址宽度 ) $('#mytb tr td:last-child').hide();</script> IE如何内嵌页面---病毒求助--1 为什么放在window.onload中,就失效了呢??? 解决立即给分 关于层得问题~~~ input为innerHTML后,原有js失效了 form.submit()提示:无效的语法 怎样将html格式的table导成Execl select 加 javascript问题,高人来看看,帮一下吧 在用一个页面中,怎么将一个列表中选择的选项传递到另外一个列表中? 网页的定位!!! ECharts关系图配置,求教 作用域问题,帮忙看下可好?给个详细解释 写在html的script标签里的函数怎么使用在别的js单独文件中
<table border="1" id="mytb">
<tr><td>中国忍受</td><td>中国忍受</td><td>中国忍受中国忍受</td><td>详细地址</td></tr>
<tr><td>中国忍受</td><td>中国忍受</td><td>中国忍受中国忍受</td><td>中国忍受</td></tr>
<tr><td>中国忍受</td><td>中国忍受</td><td>中国忍受中国忍受</td><td>中国忍受</td></tr>
</table>
<script>
var newLine = false, totalTdContentWidth = 0, maxTotalTdContnetWidth = -1, lineHeight = 0
, tableWidth = 330;//自己修改表格宽度测试 $('#mytb').attr('width',tableWidth).find('tr').each(function () {
totalTdContentWidth = 0;
$('td:not(:last-child)', this).each(function () {
var s = this.innerHTML;
if (lineHeight == 0) {//获取行高
this.innerHTML = '<div style="width:' + this.offsetWidth + 'px;height:' + this.offsetHeight + 'px;overflow:hidden"><div style="width:999px"><span>' + this.innerHTML + '</span></div></div>';
lineHeight = this.firstChild.firstChild.offsetHeight;
}
this.innerHTML = '<span>' + s + '</span>'; if (this.firstChild.offsetHeight > lineHeight) { newLine = true; return false }//换行 totalTdContentWidth += this.firstChild.offsetWidth;
});
if (newLine) return false;
maxTotalTdContnetWidth = Math.max(maxTotalTdContnetWidth, totalTdContentWidth);//获取每行中内容中最大宽度
}); //执行隐藏操作
if (newLine ||//td中出现换行
maxTotalTdContnetWidth > tableWidth - 60//每行总宽度大于table宽度-详细地址宽度
)
$('#mytb tr td:last-child').hide();
</script>