最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS前端知識(shí)點(diǎn)總結(jié)之頁面加載事件,數(shù)組操作,DOM節(jié)點(diǎn)操作,循環(huán)和分支

 更新時(shí)間:2019年07月04日 12:08:59   作者:Johnny丶me  
這篇文章主要介紹了JS前端知識(shí)點(diǎn)總結(jié)之頁面加載事件,數(shù)組操作,DOM節(jié)點(diǎn)操作,循環(huán)和分支,結(jié)合實(shí)例形式總結(jié)分析了JS頁面加載事件,數(shù)組操作,DOM節(jié)點(diǎn)操作,循環(huán)和分支所涉及的相關(guān)事件、函數(shù)及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了JS前端知識(shí)點(diǎn)總結(jié)之頁面加載事件,數(shù)組操作,DOM節(jié)點(diǎn)操作,循環(huán)和分支。分享給大家供大家參考,具體如下:

頁面加載事件的比較

  • window.onload
  • jquery 中的 document.ready
document.ready = function (callback) {
  // 兼容FF,Google
  if (document.addEventListener) {
    document.addEventListener('DOMContentLoaded', function () {
      document.removeEventListener('DOMContentLoaded', arguments.callee, false);
      callback();
    }, false)
  }
  // 兼容IE
  else if (document.attachEvent) {
    document.attachEvent('onreadystatechange', function () {
       if (document.readyState == "complete") {
            document.detachEvent("onreadystatechange", arguments.callee);
            callback();
        }
    })
  }
  else if (document.lastChild == document.body) {
    callback();
  }
}
window.onload = function () {
  alert('onload'); // 后執(zhí)行
};
document.ready(function () {
  alert('ready'); // 先執(zhí)行
});

  • 內(nèi)部實(shí)現(xiàn)細(xì)節(jié)如上

數(shù)組的常用操作方法

  • push 從后面追加一個(gè)或多個(gè),返回新數(shù)組的長(zhǎng)度
  • unshift 從前面追加一個(gè)或多個(gè),返回新數(shù)組的長(zhǎng)度
  • pop 刪除最后一個(gè)元素,返回被刪除的元素
  • shift 刪除第一個(gè)元素,返回第一個(gè)被刪除的元素
  • concat 連接數(shù)組,返回新的數(shù)組
  • join 將數(shù)組轉(zhuǎn)字符串,參數(shù)是分隔符,默認(rèn)是分隔符是逗號(hào)”,”
  • split 將字符串轉(zhuǎn)換為數(shù)組,默認(rèn)分割符是逗號(hào) stringObject.split(separator,howmany), howmany 參數(shù)可指定返回的數(shù)組的最大長(zhǎng)度

js 的構(gòu)成

  • ECMAScript 描述了js語法和基本對(duì)象
  • DOM (文檔對(duì)象模型) 提供了文檔結(jié)構(gòu)化表示,并定義了如何通過腳本來訪問文檔結(jié)構(gòu)
  • BOM (瀏覽器對(duì)象模型) 提供與瀏覽器交互的方法和接口

dom 節(jié)點(diǎn)

  • 標(biāo)簽節(jié)點(diǎn)
  • 文字節(jié)點(diǎn)
  • 屬性節(jié)點(diǎn)
  • 注釋節(jié)點(diǎn)

獲取節(jié)點(diǎn)的方式

document.getElementById(“id”)
document.getElementByTagName(“div”)
document.getElementsByClassName(“classname”) ie 678 不支持
document.querySelector(); // 返回第一個(gè)匹配的dom元素
document.querySelectorAll(); // 返回所有dom元素匹配的集合

獲取瀏覽器是否支持的寫法如下

if(document.querySelector){
 // do your business
}

節(jié)點(diǎn)的訪問

父節(jié)點(diǎn)(唯一):

dom.parentNode

兄弟節(jié)點(diǎn) (兼容寫法):

// nextSibling 和 previousSibling 是IE的寫法
var next = (dom.nextElementSibling) || (dom.nextSibling);
var pre = (dom.previousElementSibling) || (dom.previousSibling);

孩子節(jié)點(diǎn) (兼容寫法):

// firstChild, lastChild 是IE的寫法
var first = father.firstElementChild || father.firstChild;
var last = father.lastElementChild || father.lastChild;

孩子們節(jié)點(diǎn):childNodes 和 children

// childNodes 是w3c推薦使用, 但谷歌等瀏覽器把換行也看成一個(gè)節(jié)點(diǎn)
// 用下面的方式實(shí)現(xiàn),比較麻煩
var demo = document.getElementById("demo");
var nodes = demo.childNodes;
for(var i=0;i<nodes.length;i++) {
 if(nodes[i].nodeType == 1) {
  nodes[i].style.display = "none";
 }
}
// children 在ie678里面包含注釋節(jié)點(diǎn), 注意在編碼時(shí)避開使用注釋
var demo = document.getElementById("demo");
var child = demo.children;
child[0].style.backgroundColor = "red";  // 第一個(gè)孩子
child[child.length-1].style.backgroundColor = "red";  // 最后一個(gè)孩子

dom 節(jié)點(diǎn)操作

創(chuàng)建節(jié)點(diǎn):

var dom = document.createElement(“div”);

添加節(jié)點(diǎn):

// appendChild 將dom追加到dom1的最后面
dom1.appendChild(dom) ;
// insertBefore 將newDom 插入到 ReferencedDom 的前面, 返回值為新插入的值, dom1 為父節(jié)點(diǎn)
dom1.insertBefore(newDom, ReferencedDom)

刪除節(jié)點(diǎn):

removeChild() eg: domA.removeChild(domB); // 刪除domA里面的孩子節(jié)點(diǎn)domB

克隆節(jié)點(diǎn): cloneNode 復(fù)制節(jié)點(diǎn),接受一個(gè)布爾值,true表示深復(fù)制(復(fù)制節(jié)點(diǎn)及其內(nèi)部所有節(jié)點(diǎn)), false 表示淺復(fù)制

// 深復(fù)制
demo.cloneNode(true);
// 淺復(fù)制
demo.cloneNode(false);

屬性設(shè)定

非兼容ie6,7的寫法
- 獲取:dom.getAttribute(“屬性”);
- 設(shè)置:dom.setAttribute(“屬性”,”值”);
- 刪除:dom.removeAttribute(“屬性”);

兼容寫法舉例:
- 獲?。簐ar cn = dom.className
- 設(shè)置:dom.className = “dcl”
- 刪除:dom.className = null;

特殊樣式屬性

cssText 用于更改多個(gè)樣式屬性設(shè)置

dom.style.cssText = "width:30px;height:10px;"

常用的循環(huán)

  • for
  • while
  • do while

switch 多分支語句

var str = "abc";
switch(str) {
 case "a"
  // ...
  break;
 case "b"
  // ...
  break;
 case "c"
  // ...
  break;
 case "abc"
  // ...
  break;
 default:
  // ...
}

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript操作DOM技巧總結(jié)》、《JavaScript頁面元素操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

  • 分享50個(gè)超級(jí)有用的JavaScript單行代碼(推薦!)

    分享50個(gè)超級(jí)有用的JavaScript單行代碼(推薦!)

    JavaScript是一種腳本語言,是直接在瀏覽器運(yùn)行的,下面這篇文章主要給大家介紹了50個(gè)超級(jí)有用的JavaScript單行代碼的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • JavaScript實(shí)現(xiàn)日期格式化詳細(xì)實(shí)例

    JavaScript實(shí)現(xiàn)日期格式化詳細(xì)實(shí)例

    這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)日期格式化的相關(guān)資料,JavaScript中的日期對(duì)象提供了許多方法和屬性,可以通過它們來進(jìn)行日期的格式化,需要的朋友可以參考下
    2023-09-09
  • JavaScript實(shí)現(xiàn)獲取遠(yuǎn)程的html到當(dāng)前頁面中

    JavaScript實(shí)現(xiàn)獲取遠(yuǎn)程的html到當(dāng)前頁面中

    今天做個(gè)項(xiàng)目,需要在當(dāng)前的html頁面中引用一個(gè)遠(yuǎn)程的html頁面,百度了一下,發(fā)現(xiàn)一個(gè)非常好用的代碼,這里分享給大家,有相同需求的小伙伴可以來看看
    2017-03-03
  • package.json與package-lock.json的區(qū)別及詳細(xì)解釋

    package.json與package-lock.json的區(qū)別及詳細(xì)解釋

    不知道大家平時(shí)在開發(fā)中有沒有注意到,你的項(xiàng)目中有兩個(gè)文件:package.json,package-lock.json,應(yīng)該很多人平時(shí)都不會(huì)去關(guān)注這兩個(gè)文件有啥關(guān)系吧,這篇文章主要給大家介紹了關(guān)于package.json與package-lock.json的區(qū)別及詳細(xì)解釋,需要的朋友可以參考下
    2022-08-08
  • webpack4.x開發(fā)環(huán)境配置詳解

    webpack4.x開發(fā)環(huán)境配置詳解

    這篇文章主要介紹了webpack4.x開發(fā)環(huán)境配置方法,結(jié)合實(shí)例形式詳細(xì)分析了webpack4.x的具體安裝、項(xiàng)目創(chuàng)建、打包操作等相關(guān)問題與處理技巧,需要的朋友可以參考下
    2018-08-08
  • 基于前端實(shí)現(xiàn)版本更新自動(dòng)檢測(cè)的流程步驟

    基于前端實(shí)現(xiàn)版本更新自動(dòng)檢測(cè)的流程步驟

    在現(xiàn)代Web應(yīng)用中,為了提升用戶體驗(yàn)并確保系統(tǒng)的穩(wěn)定性和一致性,部署前端版本更新后及時(shí)提醒用戶進(jìn)行頁面刷新是至關(guān)重要的,所以本文給大家介紹了基于前端實(shí)現(xiàn)版本更新自動(dòng)檢測(cè)的流程步驟,需要的朋友可以參考下
    2025-03-03
  • 純js實(shí)現(xiàn)輪播圖效果

    純js實(shí)現(xiàn)輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了純js實(shí)現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • List all the Databases on a SQL Server

    List all the Databases on a SQL Server

    List all the Databases on a SQL Server...
    2007-06-06
  • 最新評(píng)論

    京山县| 宜川县| 沁源县| 佛坪县| 凌海市| 博湖县| 克什克腾旗| 宝鸡市| 边坝县| 南开区| 株洲市| 桂平市| 平和县| 库尔勒市| 蓬溪县| 泰顺县| 伽师县| 宁阳县| 谢通门县| 资兴市| 松桃| 宁波市| 万山特区| 富顺县| 四川省| 全州县| 洛扎县| 姜堰市| 巩义市| 婺源县| 惠东县| 公安县| 乐安县| 体育| 岑巩县| 屏东市| 三穗县| 红桥区| 双辽市| 镇安县| 白河县|