javascript的一些常用知识点

1. 查看你的html文档中一共有多少个节点 :   document.getElementsByTagName(" * ").length;

2.  document.getElementsByClassName() 这个用来获取classname,但是对于老版本的浏览器还不是很支持,要支持老版本的浏览器的写法:

function getElementsByClassName(node,classname){
          if(node.getElementsByClassName){
              return node.getElementsByClassName(classname);
          }else{
              var results=[];
              var elems=node.getElementsByTagName("*");
              for(var i=0;i<elems.length;i++){
                  if(elems[i].calssName.indexOf(classname) != -1){
                      results.[results.length] = elems[i];
                  }
              }
              return results;
          }
      }

3.  onload事件的用法(在页面的图片,css文件等资源全部都加载完成后触发);

如果window.onload需要绑定的函数很多的情况下的使用方法:(弹性最佳解决方法,它是由Simon Willison编写的;)

  function addLoadEvent(func){
    var oldonload=window.onload;
    if(typeof window.onload != "function"){  //当window.onload上没有绑定函数时,把函数添加给它;
      window.onload=func;
    }else{
      window.onload = function(){           //当window.onload上绑定了函数,把新函数追加到现有指令的末尾;
        oldonload();
        func();
      }
    }
  }
添加绑定的函数:  addLoadEvent(firstFunc);
                 addLoadEvent(secondFunc);

4.在已有的元素后面插入一个元素:

insertBefore()在已有的元素前插入一个新元素:parentElement.insertBefore(newElement,targetElement);
没有insertAfter()在已有的元素后插入一个新元素的方法:自己编写:
  function insertAffer(newElement,targetElement){
    var parent=targetElement.parentNode;
    if(parent.lastChild == targetElement){
      parent.appendChild(newElement);
    }else{
      parent.insertBefore(newElement,targetElement.nestSibling);
    }
  }

 5.   accesskey属性可以把一个元素与键盘上的某个特定的按键关联在一起:
       eg:<a href="index.html" accesskey="1">Home</a>

6.  CSS-DOM:(如何用DOM技术去获取和设置CSS信息:)
   获得style属性的方法:           element.getAttribute("style"):返回的值是包含CSS的文本;
 (style属性只能返回内嵌样式)    element.style.property:通过属性访问返回的是一个对象;(style是以编程方式访问元素样式的,并没有直接映射到style对象上);

 

7.   className属性: 给一个元素追加class名字的函数:value表示新class名字;

    function addClassName(element,value){
      if(!element.className){
        element.className=value
      }else {
        newclassName=element.className;
        newclassName+=" ";
        newclassName+=value;
        element.className=newclassName;
      }
    }

 

8.     创建文档碎片:var frgment=document.creatDocumentFragment();

9.     "javascript:" 伪协议:一种非标准化的协议;它让我们通过一个链接来调用JavaScript函数 ;
           例如:<a href="javascript:函数名(参数);">00000000000000</a>
           注意:在HTML文档通过"javascript:" 伪协议调用javascript代码的做法非常不好;
                   <a href="#" onclick="函数名(参数)return">------</a>:# 某些浏览器里表示指向当前文档的开头;可以创建一个空链接;与上面的做法同样不好,它们都不能平稳退化,
                                                     如果用户已经禁用了浏览器的javascript功能,这样的链接毫无用处;
                   <a href="www.baidu.com" onclick="函数名(this.href);return false"></a>  (这种写法效果好些,在JS禁用后还是可以打开页面);

 

posted @ 2017-07-11 11:23  三石!  阅读(181)  评论(0编辑  收藏  举报