列表

1.getComputerStyle 和 getPropertyValue

2.ownerDocument

3.包装对象

 

1.getComputedStyle("元素","伪类");其获得的是元素的一个CSS样式申明对象([Object CSSStyleDeclaration]),而且是只读的。

  我们使用element.style的时候也可以得到样式申明,其获取的样式生命类是可读可写的,而且getComputedStyle中显示的最终运用到当前的元素上面的所有的样式,而element.style只能获取style属性中的样式。

  jquery中其使用的代码是window.defaultView.getComputedStyle,根据DennisHall的说法,使用defaultView可能一是人们不太乐意在window上专门写个东西,二是让API在Java中也可用.(完全不知道他在说什么)。

  还在其他的地方瞄到一眼是关于element.currentStyle的讲解,其返回的是元素当前应用的最终CSS属性值(包括外链CSS文件,页面中嵌入的style属性等)。

    getPropertyValue方法可以获取CSS样式申明对象上的属性值(直接属性名称)。这样的话就可以不用每个浏览器之间找哪些键值到底是什么名称啦,哇卡卡卡。而且兼容性也很好(除掉IE9以下的版本啦),忘记说了,getComputedStyle的兼容性也是很不错的,知识IE9一下的版本很是特殊所以,前端的都懂。。。。,当然IE9以下的版本也是有类似的方法的getAttribute啦,不过他的参数的写法是要驼峰形式的,而getPropertyValue却不能是驼峰形式的,使用形式是中间带横岗的  (e.g.  getPropertyValue("background-color"))。

 

2.ownerDocument,此属性返回的是某元素的根节点。HTML中, HTML 文档本身是元素的根元素。

 1 HTML-----------------------------------------------------------------------
 2 
 3 <div id="test"></div>
 4 
 5 JS---------------------------------------------------------------------------
 6 
 7 var x = document.getElementById("test");
 8 if(x.ownerDocument === document){
 9       console.log("true");      
10 }
11 else {
12       console.log("false");
13 }
14 
15 RESULT--------------------------------------------------------------------
16 结果是true

这个主要是针对不同文档的,主要是iframe的,还有通过ajax加载的xml文档(还没有弄明白,之后再补充,本人小白勿怪)。

 

3.包装对象:指的是String或者是number和boolean类型的值但我们赋值给一个变量的时候,其常常能表现出一种对象的性质,比如说调调用一些对象的方法,但同时其有事只读的,即我们并不能对于当前的对象进行数据的修改或者是添加,如下面一段代码:

1 var str = "test";//为当前的str变量赋值一个字符串变量的值。
2 var word = str.subString(s.indexOf("t")+1, s.length);
3 //以上的内容表示的是当前的字符串量可以调用对象方法有一定的对象属性存在。
4 
5 var str2 = "test";
6 str2.len = 4;//给他附一个相关的值。
7 var t= str2.len;//查询这个值。
8 //之中我们可以通过console的显示当前值,t的值是undefined。

由上面的额代码可一直到我们对于一个字符串形式的值进行赋值变量这一类的对象操作的时候我,时并不能成功的。当我们为Slen赋值的时候,实际上是创建了一个临时的字符串对象,并把对象中的len赋值为4,当时当代码运行到第三行的时候,系统会自动的把当前的临时对象销毁的。冰在要获取len值的时候在创建一个新的临时的字符串变量,并在这个心的字符串变量中的寻找len变量,但是新的字符串变量中并没有len,所以最后的出来的结果是t变量的值是undefined。在对字符串进行操作的时候常常系统会把相关的 字符串转变成为一个字符串对象(即String),如此字符串变量就类似于有了对象的部分属性,并且是只读的,如此我们把这种对象称为包装对象。

当然变量和对象变量还是有差别的,string和String()当用==判断的时候是相同的,但是当用===号判断的话将会是不同的。

 

posted on 2016-05-18 17:22  平川心  阅读(210)  评论(0)    收藏  举报