js获取td的宽outerWidth()、clientWidth在ie兼容问题。

JasonHix 2014-07-21 03:42:32
var tr= document.getElementById("titletr"); //table内的表头tr
$(tr).find("td").each(function(j,td){
newtit=newtit+"<span class='title' style='width:" + ($(td).outerWidth()) + "px;'>kkkkkkk </span>";
});


这里获取tr中td的宽度,由于td的宽不是固定的,使用outerWidth()、clientWidth在ie9中可以,在Ie8获取不到宽,width更不可以,有没有其他兼容的属性获取宽。
...全文
800 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
JasonHix 2014-07-21
  • 打赏
  • 举报
回复
我实现的功能就是div悬浮表头。 $(document).ready(function(){ /*表头悬浮*/ var gdiv= document.getElementById("griddiv"); //最外层的div var titdiv=document.getElementById("titlediv"); //新建表头的div var tbdiv= document.getElementById("tablediv"); //包裹table的div var tb= document.getElementById("tbb"); //table var tr= document.getElementById("titletr"); //table内的表头 var taa =document.getElementById("taaks"); //创建新的表头,同时删除原来table中的表头 function createtitle(tdiv,ttb,ttr){ var newtit=""; $(tr).find("td").each(function(j,td){ newtit=newtit+"<span class='title' style='width:" + (td.clientWidth) + "px;'>"+td.childNodes[0].nodeValue+"  </span>"; }); tdiv.innerHTML=newtit; //删除原表头 if( 1 != 2) $(ttr).remove(); } function SetGrid(awidth,aheight){ gdiv.style.width=awidth + "px"; tbdiv.style.width=awidth + "px"; tbdiv.style.height=aheight + "px"; createtitle(titdiv,tb,tr); } SetGrid(888,670); }); 这是jquery代码,卡在 newtit=newtit+"<span class='title' style='width:" + (td.clientWidth) + "px;'>"+td.childNodes[0].nodeValue+"  
Null_Reference 2014-07-21
  • 打赏
  • 举报
回复
引用 12 楼 BenXinx 的回复:
[quote=引用 9 楼 ly12530 的回复:] [quote=引用 3 楼 BenXinx 的回复:] [quote=引用 1 楼 ly12530 的回复:] $(td).css("width") 试试!!!
不行,因为td中有空字符,获取的不准确,无法和下面的table对应[/quote] 空字符不能去掉?[/quote] 不能这是加上去的,去掉就没有意义了。[/quote] 你要实现个什么功能?截图出来瞧瞧。
JasonHix 2014-07-21
  • 打赏
  • 举报
回复
引用 9 楼 ly12530 的回复:
[quote=引用 3 楼 BenXinx 的回复:] [quote=引用 1 楼 ly12530 的回复:] $(td).css("width") 试试!!!
不行,因为td中有空字符,获取的不准确,无法和下面的table对应[/quote] 空字符不能去掉?[/quote] 不能这是加上去的,去掉就没有意义了。
Null_Reference 2014-07-21
  • 打赏
  • 举报
回复
引用 9 楼 ly12530 的回复:
[quote=引用 3 楼 BenXinx 的回复:] [quote=引用 1 楼 ly12530 的回复:] $(td).css("width") 试试!!!
不行,因为td中有空字符,获取的不准确,无法和下面的table对应[/quote] 空字符不能去掉?[/quote] 不一定一定要用table吧?
JasonHix 2014-07-21
  • 打赏
  • 举报
回复
clientWidth和outerWidth在IE9可以,为什么在IE8低版本中就获取不到对应的td宽呢。
Null_Reference 2014-07-21
  • 打赏
  • 举报
回复
引用 3 楼 BenXinx 的回复:
[quote=引用 1 楼 ly12530 的回复:] $(td).css("width") 试试!!!
不行,因为td中有空字符,获取的不准确,无法和下面的table对应[/quote] 空字符不能去掉?
JasonHix 2014-07-21
  • 打赏
  • 举报
回复
引用 6 楼 u012463264 的回复:
[quote=引用 5 楼 BenXinx 的回复:] [quote=引用 2 楼 u012463264 的回复:] jquery : 尺寸 height( [val] ) width( [val] ) innerHeight() innerWidth() outerHeight(options) outerWidth(options)
在ie9中可以,但测试ie8只能获取固定td的宽,其他td宽获取为0。[/quote] 设置一个高度和宽度试试。[/quote] 设置宽度肯定可以,现在是不让设置宽度。所以要获取动态的td.
JasonHix 2014-07-21
  • 打赏
  • 举报
回复
我的功能是获取table中td的宽。div的宽和table对应,span的宽和每个td对应的悬浮在table上面的行,但是多个获取td宽度的属性都无法正确的获取,求助一下。 顶
别闹腰不好 2014-07-21
  • 打赏
  • 举报
回复
引用 5 楼 BenXinx 的回复:
[quote=引用 2 楼 u012463264 的回复:] jquery : 尺寸 height( [val] ) width( [val] ) innerHeight() innerWidth() outerHeight(options) outerWidth(options)
在ie9中可以,但测试ie8只能获取固定td的宽,其他td宽获取为0。[/quote] 设置一个高度和宽度试试。
JasonHix 2014-07-21
  • 打赏
  • 举报
回复
引用 2 楼 u012463264 的回复:
jquery : 尺寸 height( [val] ) width( [val] ) innerHeight() innerWidth() outerHeight(options) outerWidth(options)
在ie9中可以,但测试ie8只能获取固定td的宽,其他td宽获取为0。
别闹腰不好 2014-07-21
  • 打赏
  • 举报
回复
引用 3 楼 BenXinx 的回复:
[quote=引用 1 楼 ly12530 的回复:] $(td).css("width") 试试!!!
不行,因为td中有空字符,获取的不准确,无法和下面的table对应[/quote] 你给单元格用样式设置一个高度和宽度行吗
JasonHix 2014-07-21
  • 打赏
  • 举报
回复
引用 1 楼 ly12530 的回复:
$(td).css("width") 试试!!!
不行,因为td中有空字符,获取的不准确,无法和下面的table对应
别闹腰不好 2014-07-21
  • 打赏
  • 举报
回复
jquery : 尺寸 height( [val] ) width( [val] ) innerHeight() innerWidth() outerHeight(options) outerWidth(options)
Null_Reference 2014-07-21
  • 打赏
  • 举报
回复
$(td).css("width") 试试!!!

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧