javascript之DOM技术(二)

全文链接

一。样式编程
1.页面中的每一个元素都具有一个style对象,此对象管理元素的CSS样式。这是在IE4.0引入的,后来作为DOM标准被接受。使用方法:
var oDiv=document.getElementById("div1");
alert(oDiv.style.backgroundColor);
style对象拥有一个cssText属性,返回描述元素样式的CSS字符串。

2.样式对象style的方法(IE6并不支持这些方法):
(1)getPropertyValue(propertyName)——返回CSS特性propertName的字符串值,比如this.style.getPropertyValue("background-color");这里的propertyName必须按照CSS的样式定义。

(2)getPropertyPriority()——返回important字符串或者为空
(3)item(index)——返回给定索引处的CSS特性名称
(4)removeProperty(propertyName)——移除某CSS特性
(5)setProperty(propertyName,value,priorty)——按照执行优先级设定CSS特性的值

3.通过隐藏层实现自定义鼠标提示的例子:

<html>
    <head>
        <title>Style Example</title>
          <script type="text/javascript" src="detect.js"></script>
        <script type="text/javascript" src="eventutil.js"></script>
        <script type="text/javascript">
            function showTip() {
                var oDiv = document.getElementById("divTip1");
                oDiv.style.visibility = "visible";
                var oEvent=EventUtil.getEvent();
                oDiv.style.left = oEvent.clientX + 5;
                oDiv.style.top = oEvent.clientY + 5;
            }

            function hideTip() {
                var oDiv = document.getElementById("divTip1");
                var oEvent=EventUtil.getEvent();
                oDiv.style.visibility = "hidden";
            }
        </script>
    </head>
    <body>
        <p>Move your mouse over the red square.</p>
        <div id="div1" 
             style="background-color: red; height: 50px; width: 50px"
             οnmοuseοver="showTip()" οnmοuseοut="hideTip()"></div>

         <div id="divTip1" 
              style="background-color: yellow; position: absolute; visibility: hidden; padding: 5px">
            <span style="font-weight: bold">Custom Tooltip</span><br />
            More details can go here.
         </div>
    </body>
</html>


这里使用了我在《javascript事件模型框架》中摘记的JS文件。实现可折叠区域的道理与此相同,很常用的功能,不再细说。

4.访问样式表,因为style对象只能访问一个元素的CSS样式,而对于<style/>定义的或者外部CSS文件定义的CSS规则没办法访问,这就引出了如何访问样式表的问题。我们可以通过下面的方式访问:

var cssRules=document.styleSheets[0].cssRules||document.styleSheets[0].rules;



document.styleSheets返回页面上所有样式表的引用,标准DOM中规定每个样式表的规则集合叫cssRules,而IE中叫rules,所以我们用上面的表达式来处理浏览器兼容问题。一个访问的例子:

<html>
    <head>
        <title>Accessing Style Sheets Example</title>
        <style type="text/css">
            div.special {
                background-color: red;
                height: 10px;
                width: 10px;
                margin: 10px;
            }
        </style>
        <script type="text/javascript">
            function changeBackgroundColor() {
                var oCSSRules = document.styleSheets[0].cssRules || document.styleSheets[0].rules;
                oCSSRules[0].style.backgroundColor = "blue";
            }
        </script>
    </head>
    <body>
        <div id="div1" class="special"></div>
        <div id="div2" class="special"></div>
        <div id="div3" class="special"></div>
        
        <input type="button" value="Change Background Color" οnclick="changeBackgroundColor()" />
    </body>
</html>


点击按钮时将三个div的背景色都设置为蓝色。

5.最终样式:顾名思义,就是样式规则(外部定义和内联的)综合计算之后呈现给用户的样式信息,用来告诉我们元素最终是如何显示在屏幕上的。IE和标准的DOM也有区别:
(1)IE中的最终样式称为currentStyle对象,与style对象不同的是它是只读的,你只能读而不能给它赋值。
(2)DOM中的最终样式,通过document.defaultView.getComputedStyle(元素对象,伪元素对象或者null)方法获得

二。innerHTML和innerText
很常用的功能,特别是在AJAX应用中,经常采用的手段是从服务端返回一小段HTML代码,通过innerHTML嵌入某个层当中来动态显示下拉框等。一个比较常见的用法:
oDiv.innertText=oDiv.innerText;
表示从指定元素中删除所有的HTML标签。

转载于:https://my.oschina.net/u/3462387/blog/917047

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值