5-26 --- 5-28

1     var s = null;

     alert(typeof(s))       // object


2  jquery中    attr  和 prop  的区别

  attr设置的属性主要体现在页面上,prop设置的属性主要体现在内存上

  对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

< a href="http://www.baidu.com"target="_self"class="btn">百度

      这个例子里元素的DOM属性有“href、target和class",这些属性就是元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。

<  a  href="#"id="link1"action="delete">删除

      这个例子里元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。

再举一个例子:

< inputid="chk1"type="checkbox"/>是否可见

< inputid="chk2"type="checkbox"checked="checked"/>是否可见

像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。

$("#chk1").prop("checked") ==false$("#chk2").prop("checked") ==true

如果上面使用attr方法,则会出现:

$("#chk1").attr("checked") ==undefined

$("#chk2").attr("checked") == "checked"

3    null == undefine   //  true

      null === undefine  // false

4     标题标签不能继承文字大小

5      闭包问题


  var elem =document.getElementsByTagName('div');// 如果页面上有5个div

for(  var i =0; i < elem.length; i++) {    

                elem[i].onclick =function () {      

                     alert(i);// 总是5

                  };

}

上方是一个很常见闭包问题,点击任何div弹出的值总是5,因为当你触发点击事件的时候i的值早已是5,可以用下面方式解决:

var elem =document.getElementsByTagName('div');// 如果页面上有5个div


for(var i =0; i < elem.length; i++) { 


   (function (w) {        elem[w].onclick =function () {           

                 alert(w);// 依次为0,1,2,3,4

          };

      })(i);

}

在绑定点击事件外部封装一个立即执行函数,并将i传入该函数即可。


6   

标签的defer="defer"属性  defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。标签的defer="defer"属性  defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。标签的defer="defer"属性  defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。

      

你可能感兴趣的:(5-26 --- 5-28)