js读取外部css文件的属性

先举一个例子:我们经常会遇到这样一个问题,设置所有table的td宽度而不设置table的总宽度后,显示出来的table的总宽度并不是所有td的宽度之和。而且各td的宽度也并不是原先设定的宽度。但是在随时都有可能增加td的情况下,我们又不能随时手动修改table的总宽度。

这时候我们就可以把所有td的宽度都写在html文件的style里,然后js读取对应的td宽度;当然我们也可以写在外部css文件里,但这时候用js调取就遇到问题了。

我在网上搜过很多关于js读取外部css文件的属性的资料,不知道是我用的方法不对还是怎样,总之就是不能正确调取。于是我自己写了一个读取外部css文件属性的方法。

思路很简单,就是用js先读取对应的css文件内容,然后在根据class名来截取字符串。

/*读取css文件代码*/

function getCss(sUrl) {
var ie = navigator.userAgent.indexOf(‘MSIE’) > 0;
var o = ie ? new ActiveXObject(‘Microsoft.XMLHTTP’) : new XMLHttpRequest();
o.open(‘get’, sUrl, false);
o.send(null);
return {
body: o.responseText
};
}

/*截取字符串代码*/

function str_substr(start, end, str) {

temp = str.split(start, 2);
content = temp[1].split(end, 2);
return content[0];
}

/*读取每个td宽度*/

$(document).ready(function() {

var maincss = getCss(‘css/main.css’).body;//读取css文件内容
maincss = maincss.replace(/[\r\n]/g, “”); //去掉回车换行
var tablewidth =0;
$(“#he th”).each(function() {//遍历每个td
var thclass = $(this).attr(“class”);//获取当前td的class名称
var css = str_substr(“.list_right .” + thclass, “}”, maincss);//根据名称去css文件里截取对应的字符串
css = str_substr(“width:”, “px”, css);//从这些字符串中提取出宽度
css = css.replace(/\ +/g, “”); //去掉空格
css = Number(css.replace(/[ ]/g, “”)); //去掉空格
tablewidth = tablewidth + css;//所有宽度相加,得出table总宽度
});

$(“. orderlisttable “).css(“width”, tablewidth + “px”);//给table添加宽度

});

/*html代码*/

<table class=”orderlisttable” cellspacing=”0″>
<thead>
<tr id=”he”>
<th class=”xuhao”>序号</th>
<th class=”caozuo”>管理操作</th>
<th class=”dingdanxinxi”>订单信息</th>
<th class=”dingdanzhuangtai”>订单状态</th>
<th class=”wuliuzhuangtai”>物流状态</th>
<th class=”wuliurenyuan”>物流人员</th>
<th class=”xingming”>姓名</th>
<th class=”bankaxiangqing”>办卡详情</th>
<th class=”shijiandizhi”>时间地址</th>
<th class=”dengdaixinqing”>等待心情</th>
<th class=”kehuyaoqiu”>客户要求</th>
<th class=”shishoukuan”>实收款</th>
<th class=”huifangstatus”>回访状态</th>
<th class=”xiadanqudao”>下单渠道</th>
<th class=”dingdanguishu”>订单归属</th>
<th class=”youhui”>下单优惠</th>
<th class=”beizhu”>备注</th>
<th class=”kehutousu”>客户投诉</th>
<th class=”kehupingjia”>客户评价</th>
<th class=”pingjiaxiangqing”>评价详情</th>
</tr>
</thead>

</table>

 

 

 

 

未经允许不得转载:前端撸码笔记 » js读取外部css文件的属性

上一篇:

下一篇: