美文网首页
JavaScript学习笔记

JavaScript学习笔记

作者: MVBin | 来源:发表于2017-05-23 11:05 被阅读11次

    什么是JavaScript

    JavaScript是一种脚本语言,是一种弱类型语言(可以不用声明变量的类型,与强类型语言不同)。

    如何使用JavaScript

    1. 在HTML或XHTML文档中直接编写JavaScript代码
    2. 在HTML或XHTML文档中引入扩展名为.js的JavaScript文件

    以上两种方式的使用位置最好放在HTML或XHTML文档的最后,即</body>标签之前,这样有利于页面的快速加载。

    JavaScript中的注释方式

    1. 单行注释使用//代码行
    2. 多行注释使用/* 多行代码 */

    JavaScript中的变量

    1. 可以不用显示的声明变量的类型,但最好声明
    2. 变量的命名要规范(驼峰命名法等),且区分大小写,不能包含标点符号或空格
    3. var关键字进行变量的声明

    JavaScript中的内置函数

    JavaScript中的内置对象

    JavaScript中使用window对象

    1. 使用window.onload在页面加载时调用指定函数,如:window.onload = showPic();在页面加载时调用showPic()函数
    2. 使用window.open打开一个新的窗口,如:window.open(url, name, features),其中url表示打开的新窗口的链接地址,name是新窗口的名字,features是一个字符串,用来设置新的窗口的特征,如宽度,高度等,属性之间以逗号进行分割

    JavaScript中的事件处理函数

    1. onmouseover当鼠标指责悬停在某个元素上时调用指定函数,如:onmouseover="uf_Over();"
    2. onmouseout当鼠标指针离开某个元素时调用指定函数
    3. onclick当鼠标点击某个元素时调用指定函数,如:onclick="showPic();add();return false;"
    4. onkeypress当敲击键盘上任意一个按键时调用指定函数,这个时间处理函数请谨慎使用

    注意:以上事件处理函数调用的指定函数的数量可以有多个,并用分号分割开即可。

    HTML或XHTML文档中的节点

    1. 元素节点,如:<body>,<p>
    2. 文本节点,如:<a>This is a link</a>中的This is a link
    3. 属性节点,如:![](images/1.jpg)中的src

    获取页面(Document)中元素的三种方法

    1. 使用getElementById("xxx")根据id获取元素节点(唯一),如:document.getElementById("form1");获取id为form1的元素节点

    2. 使用getElementsByTagName("xxx")根据标签的名字获取元素数组,如:document.getElementsByTagName("li");获取li标签的元素数组,该方法返回的是一个数组,因此,数组相关的一些属性和方法就可以使用,如:获取数组长度等

    3. 使用getElementsByClassName("xxx")根据class属性的值获取元素数组,如:document.getElementsByClassName("sale");获取元素中class属性为sale的元素数组,有的元素的class属性有多个值,如class="sale red big",要获取类似的元素,依然可以使用document.getElementsByClassName("red pig");注意:class属性值得顺序,数量并不重要,只要是含有这些值得元素都可以进行获取。由于getElementsByClassName("xxx")这个方法适用于较新版本的浏览器,为了兼容老版本浏览器,我们可以改写该方法,如:

       function getElementsByClassName(node, classname) {//node是节点元素,classname是class值
           if(node.getElementsByClassName) {//判断是否可以使用该方法
               return node.getElementsByClassName(classname);//如果可以,返回该方法
           } else {
               var results = new Array();
               var nodes = node.getElementsByTagName("*");
               for(var i = 0; i < nodes.length; i++) {
                   if(nodes[i].className.indexOf(classname) != -1) {//判断每个节点的class属性值是否包含classname
                       results[results.length] = nodes[i];//如果包含
                   }
               }
               return results;
           }
       }
      

    操作元素中的属性节点

    1. 使用getAttribute("xxx")获取xxx属性节点的值,如:document.getElementById("p1").getAttribute("title");

    2. 使用setAttribute("xxx", "yyyy")将xxx属性节点的值修改为yyyy,如该属性节点不存在,则会先创建该属性,然后再设置值。

    3. 使用childNodes获取任意元素的所有子元素,返回的是一个数组,如:document.getElementsByTagName("body")[0].childNodes获取body元素下的所有子元素。

    4. 使用nodeType获取节点的类型,返回的是一个数字,其中,1为元素节点;2为属性节点;3为文本节点。

    5. 使用nodeValue获取文本节点的值

    6. 使用firstChild获取节点的第一个子元素

    7. 使用lastChild获取节点的最后一个子元素

    8. 使用nodeName获取节点的标签名称,返回值为标签名的大写英文,如IMG等

    9. 使用innerHTML获取节点中的html代码,也可以写入相应的html代码

    10. 使用createElement创建一个新的元素节点,如:var para = document.createElement("p");创建一个p标签,变量para代表对这个p标签的引用

    11. 使用appendChild向父节点中插入子节点,如:

      var testdiv = document.getElementById("testdiv");//获取父节点testdiv
      var para = document.createElement("p");//创建新的节点p
      testdiv.appendChild(para);//将节点p插入到testdiv中
      
    12. 使用createTextNode创建新的文本节点,如:

      //接上边代码
      var textNode = document.createTextNode("hello world");//创建一个新的文本节点textNode
      para.appendChild(textNode);//插入该文本节点
      
    13. 使用parentNode获取父节点

    14. 使用insertBefore将一个新元素插入到一个现有元素的前面,其调用语法:parentElement.insertBefore(newElement, targetElement),因此需要知道三个元素,父元素parentElement,要插入的元素newElement,目标元素targetElement

    15. 使用nextSilbing获取该元素的下一个兄弟元素

    16. JavaScript没有内置一个insertAfter函数用来在一个元素后面插入新元素,因此,可以编写一个这样的函数,如:

      function insertAfter(newElement, targetElement) {
          var parentElement = targetElement.parentNode;//获取父元素
          if(parentElement.lastChild == targetElement) {//判断父元素的最后一个子元素是不是目标元素
              parentElement.appendChild(newElement);//如果是,直接插入子节点
          } else {
              parentElement.insertBefore(newElement, targetElement.nextSibling);//如果不是
          }
      }
      

    Ajax

    这一部分的学习请参考Ajax学习笔记

    相关文章

      网友评论

          本文标题:JavaScript学习笔记

          本文链接:https://www.haomeiwen.com/subject/mwmwxxtx.html