请大神帮忙看看是哪条语句导致IE11出错了?

winzond 2019-07-15 11:38:48
<div class="wenTable">
<div class="tHead">
<table width="4830">
<colgroup>
<col width="30" />
<col width="40" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="3800" />
</colgroup>
<tbody>
<tr>
<td><span class="fa fa-cog" title="列设置"></span></td>
<td data-val="mainPicture"><span class="thTxt">图</span></td>
<td data-val="GoodsName" class="varW sort"><span class="thTxt">商品名称</span></td>
<td data-val="GoodsSN" class="varW sort"><span class="thTxt">商品编号</span></td>
<td data-val="Brand" class="varW sort"><span class="thTxt">品牌</span></td>
<td data-val="Year" class="varW sort"><span class="thTxt">年份</span></td>
<td data-val="Season" class="varW sort"><span class="thTxt">季节</span></td>
<td data-val="GoodsTypeID" class="varW sort"><span class="thTxt">类型</span></td>
<td data-val="Style" class="varW sort"><span class="thTxt">风格</span></td>
<td data-val="ShellFabric" class="varW sort"><span class="thTxt">面料</span></td>
<td data-val="TagPrice" class="varW sort"><span class="thTxt">零售价</span></td>
<td data-val="CostPrice" class="varW sort"><span class="thTxt">成本价</span></td>
<td data-val="State" class="varW sort"><span class="thTxt">状态</span></td>
<td data-val="Remarks" class="varW sort"><span class="thTxt">备注</span></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="tBody">
<table width="1030">
<colgroup>
<col width="30" />
<col width="40" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
<col width="80" />
</colgroup>
<tbody>
<tr>
<td><div class="tbTxt">1</div></td>
<td><div class="tbTxt">1</div></td>
<td><div class="tbTxt longOmit">钉珠连衣裙</div></td>
<td><div class="tbTxt longOmit">W92L001</div></td>
<td><div class="tbTxt longOmit">WEISUNNY</div></td>
<td><div class="tbTxt longOmit">2019</div></td>
<td><div class="tbTxt longOmit">夏季</div></td>
<td><div class="tbTxt longOmit">连衣裙</div></td>
<td><div class="tbTxt longOmit">甜美</div></td>
<td><div class="tbTxt longOmit">100%聚酯纤维</div></td>
<td><div class="tbTxt longOmit">499</div></td>
<td><div class="tbTxt longOmit">100</div></td>
<td><div class="tbTxt longOmit">启用</div></td>
<td><div class="tbTxt longOmit">这是个爆款</div></td>
</tr>
<tr>
<td><div class="tbTxt">2</div></td>
<td><div class="tbTxt">1</div></td>
<td><div class="tbTxt longOmit">钉珠连衣裙</div></td>
<td><div class="tbTxt longOmit">W92L002</div></td>
<td><div class="tbTxt longOmit">WEISUNNY</div></td>
<td><div class="tbTxt longOmit">2019</div></td>
<td><div class="tbTxt longOmit">夏季</div></td>
<td><div class="tbTxt longOmit">连衣裙</div></td>
<td><div class="tbTxt longOmit">夸张</div></td>
<td><div class="tbTxt">100%聚酯纤维100%聚酯纤维100%聚酯纤维</div></td>
<td><div class="tbTxt longOmit">499</div></td>
<td><div class="tbTxt longOmit">100</div></td>
<td><div class="tbTxt longOmit">启用</div></td>
<td><div class="tbTxt longOmit">这还是爆款</div></td>
</tr>
</tbody>
</table>
</div>
<!--表脚界面-->
<!--<div class="tFoot">表脚合计栏</div>-->
<!--分页栏界面-->
<div class="paging">分页栏</div>
</div>

//调整列宽
let I = $targetCol.index() + 1;
$this.find("col:nth-child(" + I + ")").attr("width", tagW);
//计算colGroup的宽度
sumTableWidth($this);

/**
* 计算colgroup的宽度
* @param $wenTable 为欲计算的表格容器
*/
function sumTableWidth($wenTable) {
$wenTable.find("table").each(function () {
let sum = 0;
$(this).find("col:visible").each(function () {
sum += Number($(this).attr("width"))
})
$(this).attr("width", sum);
});
}

如上代码,谷歌下是正常的,IE11下表头全部变形,感觉好像.tHead的width属性失效了,可是同一套代码,为什么.tBody又没有出现问题?好奇怪,另外使用了jQuery的data(),jQuery版本3.3.1,IE内核无法查看修改后的HTML,实在找不出问题到底出在哪里
...全文
307 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winzond 2019-07-17
  • 打赏
  • 举报
回复
原因:visible伪元素不同的浏览器结果不一样,谷歌能获取<col>,但IE不能获取<col>,只能改用其它办法去判断了
winzond 2019-07-15
  • 打赏
  • 举报
回复

这个td width和为2127,table width才1965,却没有变形,这又是什么道理?
winzond 2019-07-15
  • 打赏
  • 举报
回复
引用 2 楼 Hello World, 的回复:
宽度带上单位px试下
首先,加单位,vs会报错;其次,测试了一下,加了更严重,动一列,全部都动了,这感觉是<colgroup>控制不生效,全部自适应了
Hello World, 2019-07-15
  • 打赏
  • 举报
回复
宽度带上单位px试下
winzond 2019-07-15
  • 打赏
  • 举报
回复
我去,$.post方法验证用户名和密码,360安全浏览器极速或兼容模式都可以登录,直接用IE11或才EDGE,验证不通过,登录都登不了,直接提示用户名或密码错误
$.post(
"/public/Post.aspx",
{
action: "getUser",
system: $("#System").val(),
loginType: $("#LoginType").val(),
name: username,
password: userpassword
},
function (reVaul) {
if (reVaul == "-2") {
alert("参数出错,请联系管理员");
return false;
}
if (reVaul == "1") {
$.cookie('loginType', $("#LoginType").val(), { expires: 30 });
window.location.href = "main.aspx";
}
else {
$("#labMessage").text("用户名或密码错误,请重新输入");
alert("用户名或密码错误,请重新输入");
$("#txtPassword").val("");
$("#txtUser").focus();
}
});
Hello World, 2019-07-15
  • 打赏
  • 举报
回复
加上边框的宽度
sum += Number($(this).attr("width"))
=>
sum += Number($(this).outherWidth())

$(this).attr("width", sum);
=>
$(this).css({"width": sum+'px'});
Hello World, 2019-07-15
  • 打赏
  • 举报
回复
用标准的CSS属性
sum += Number($(this).attr("width"))
=>
sum += Number($(this).width())

$(this).attr("width", sum);
=>
$(this).css({"width": sum});
winzond 2019-07-15
  • 打赏
  • 举报
回复
我发现问题所在了,却不知道怎么改,IE下sum的值为0

87,909

社区成员

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

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