window.onload 用来表示在页面加载完成后才运行js文件,防止js有bug导致页面加载不出来

document选择器

选中doc后,通过不同的选择器来选择对象
document.getElementById() —-通过id来选择,id值唯一
document.getElementByTagName() —通过标签来选取,返回数组
document.getElementByClassName() —-通过class来选取标签,返回数组
document.getElementByName() —-通过name来选择,只通过IE8
兼容css选择器,可以像css一样选择标签,只是他只会选中第一个

  • document.querySelector(“#id”)
  • document.querySelector(“.aa”)
  • document.querySelector(“p”)

兼容css选择器,可以像css一样选择标签,选中全部

  • document.querySelectorAll(“.h2”)[0] —选中class为h2的第一个标签

    document常用事件

  • onclick 点击

  • ondblclick 双击
  • onmousedown 按钮被按下(长按)
  • onmouseup 鼠标按键被松开(放开)
  • onmouseenter 指针移动到元素上时触发 ,不支持冒泡,只触发一次
  • onmouseseleave 指针移除元素时触发,不支持冒泡,只触发一次
  • onmousemove 鼠标移入,但是这和只要在元素内移动都会触发,触发很多次
  • onmouseover 鼠标移动到某元素之上,支持冒泡,只触发一次
  • onmouseout 鼠标从某元素移开,支持冒泡,只触发一次
  • onkeyup 键盘松开
  • onkeydown 某个键盘被按下
  • onkeypress 键盘按下并松开

    1. window.onload = function(){
    2. var msg = 'hello msg';
    3. // document.querySelector('.btn2').addEventListener('click',func)
    4. document.querySelector('.btn2').onmousedown = func
    5. document.querySelector('.btn2').onmouseup = func2
    6. document.querySelector('.btn3').onmouseenter = func3
    7. document.querySelector('.btn3').onmouseleave = func4
    8. document.querySelector('.btn4').onmousemove = func5
    9. document.querySelector('.btn5').onkeyup = function(){
    10. document.querySelector('#text').innerHTML = this.value;
    11. }
    12. function func(){
    13. document.querySelector('#text').innerHTML = '改变按钮';
    14. }
    15. function func2(){
    16. document.querySelector('#text').innerHTML = 'hello world';
    17. }
    18. function func3(){
    19. document.querySelector('#text').style.color = 'red';
    20. }
    21. function func4(){
    22. document.querySelector('#text').style.color = 'black';
    23. }
    24. function func5(event){
    25. document.querySelector('#text').innerHTML = event.clientX;
    26. }
    27. }

    document对象常见的属性和方法

  • document.activeElement 返回当前的焦点元素,即鼠标选定的元素

    1. document.getElementById("my").onclick = function(){
    2. document.getElementById("text").innerHTML = document.activeElement.tagName;
    3. }
  • document.addEventListener() 向文件添加句柄

    1. document.getElementById('my').addEventListener('click',myfunction);
    2. function myfunction(){
    3. document.getElementById("text").innerHTML = document.activeElement.tagName;
    4. }
  • document.createElement() 创建元素节点

  • document.createTextNode() 创建文本节点,动态追加内容
    1. document.querySelector(".btn4").onclick = function(){
    2. var _div = document.createElement("div")
    3. var _text = document.createTextNode("Hello world")
    4. _div.appendChild(_text)
    5. document.body.appendChild(_div)
    6. }

    节点组成

  1. 元素节点 html body div button
  2. 文本节点 展示的内容
    ….
  3. 属性节点

不同的节点其的nodetype不一样:
const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short CDATA_SECTION_NODE = 4;
const unsigned short ENTITY_REFERENCE_NODE = 5;
const unsigned short ENTITY_NODE = 6;
const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
const unsigned short COMMENT_NODE = 8;
const unsigned short DOCUMENT_NODE = 9;
const unsigned short DOCUMENT_TYPE_NODE = 10;
const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
const unsigned short NOTATION_NODE = 12;

  • document.firstChild 返回第一个子节点
  • document.lastChild 返回最后一个子节点
  • document.childNodes 返回全部的子节点
    1. //点击第一个列表任意一个元素,其元素就移动到第二个列表
    2. var _leftlist = document.querySelector('.ul1').childNodes;//获取全部子节点
    3. for(var i=0;i<_leftlist.length;i++){
    4. if(_leftlist[i].nodeType == 1){
    5. _leftlist[i].addEventListener('click',move);
    6. }
    7. }
    8. function move(){
    9. document.querySelector(".ul2").appendChild(this);//this表示点击的对象
    10. }

    数据类型