JavaScript学习9:DOM操作表格及样式

        DOM在操作生成HTML上,还是比较简单明了的。不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了。那本文今天就来了解一下DOM如何操作表格和样式。

        一 操作表格

        <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它。

        下面我们就使用DOM来创建一个表格:

<span style="font-size:18px;">window.οnlοad=function(){
	var table=document.createElement('table');
	table.border=1;
	table.width=300;

	var caption=document.createElement('caption');
	table.appendChild(caption);
	caption.appendChild(document.createTextNode('人员表'));

	var thead=document.createElement('thead');
	table.appendChild(thead);

	var tr=document.createElement('tr');
	thead.appendChild(tr);

	var th1=document.createElement('th');
	var th2=document.createElement('th');
	var th3=document.createElement('th');

	tr.appendChild(th1);
	th1.appendChild(document.createTextNode('姓名'));

	tr.appendChild(th2);
	th2.appendChild(document.createTextNode('年龄'));

	tr.appendChild(th3);
	th3.appendChild(document.createTextNode('性别'));
	
	document.body.appendChild(table);
};</span>

        运行一下代码,效果如下

        

        二 操作样式

        CSS作为HTML的辅助,可以增强页面的显示效果。但不是每个浏览器都能支持最新的CSS能力。CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持的CSS能力级别。

        DOM1级实现了最基本的文档处理,DOM2和DOM3在这个基础上增加了更多的交互能力,这里我们主要讨论CSS,DOM2增加了CSS编程访问方式和改变CSS样式信息。

        1访问元素的样式

        任何HTML元素标签都会有一个通用的属性style。它会返回CSSStyleDeclaration对象。下面我们看几个最常见的行内style样式的访问方式。

        虽然可以通过style来获取单一值的CSS样式,但是对于复合值的样式信息,就需要通过计算样式来获取。DOM2级样式,window对象下提供了getComputedStyle()方法。接受两个参数,需要计算的样式元素,第二个伪类(:hover),如果没有伪类,就填null。

        2操作样式表

        使用style属性可以设置行内的CSS样式,而通过id和class调用时最常用的方法。之前我们使用style属性,仅仅只能获取和设置行内的样式,如果是通过内联<style>或链接<link>提供的样式规则就无可奈何了,后来我们接触到了getComputedStyle和currentStyle,这只能获取却无法设置。

        CSSStyleSheet类型表示通过<link>元素和<style>元素包含的样式表。

        这两个元素本身返回的是HTMLLinkElement和HTMLStyleElement类型,但是CSSStyleSheet类型更加通用一些,得到这个类型非IE使用sheet属性,IE使用styleSheet

var sheet=link.sheet||link.styleSheet;

        还有我们可以通过CSSRules属性(非IE)和rules属性(IE),获得样式表的规则集合列表。这样我们就可以对每个样式进行具体的操作了。

        Varrules=sheet.cssRules||sheet.rules;

        总结:三种操作CSS的方法,第一种style行内,可读可写;第二种行内、内联和链接,使用getComputedStyle或者currentStyle,可读不可写;第三种CSSRules或rules,内联和链接可读可写。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值