'DOM各种问题'

DOM各种问题

  • cloneNode()

    cloneNode()方法支持一个参数,这个参数为布尔值,即true或false,当为true时,进行深复制,
即不仅仅复制该文档节点,还复制改文档节点里面的文档节点,如:
var swfEveryCookieWrap=document.getElementById('swfEveryCookieWrap');
var def=swfEveryCookieWrap.cloneNode(true);
console.log(def)
结果是
<div data-for="result" id="swfEveryCookieWrap">
 <object type="application/x-shockwave-flash" id="sharedObjectBIDUPSID">
 <param name="swliveconnect" value="true">
 <param name="allowScriptAccess" value="always"><param>
</div>
</br>
但是如果接受的参数是false,那么只会进行浅复制,即只会复制该文档节点,不会复制他的子节点,如:
var swfEveryCookieWrap=document.getElementById('swfEveryCookieWrap');
var def=swfEveryCookieWrap.cloneNode(false);
console.log(def)
结果是
<div data-for="result" id="swfEveryCookieWrap" style="width: 0px; height: 0px; overflow: hidden;"></div> 
  • 通过什么someNode.nodeName得到的结果都是大写的,所以有时候我们要比较的话一定要记得转换成小写的,即toLowerCase(),之后再去比较,这样才不容出错。
  • div.classList.toggle(value),如果这个div已有了这个类名,那就删除,如果没有,就添加进去
  • chorme与其他浏览器不同的地方:
    • 1.chorme下的document.hasFocus()方法执行后的结果和其他浏览器不一样,自行注意
  • 浏览器的渲染模式是由你自己写的html文档的头部声明决定的,也就是说你在头部加了html的声明或者加了html5的文档声明,浏览器的渲染模式就会是标准模式(document.compatMode=”CSS1Compat”),如果不加的话就是简单的html结构,浏览器就会采取混杂模式来渲染(document.compatMode=”BackCompat”)