国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS基礎知識學習(四)

zacklee / 1403人閱讀

摘要:基礎知識基礎精講文檔對象模型,提供一些屬性和方法可以讓我們去操作元素。

JS基礎知識 DOM基礎精講
DOM:document.object model 文檔對象模型,提供一些屬性和方法可以讓我們去操作DOM元素。
獲取DOM元素的方法

document.getElementById 一個元素

[context].getElementsByTagName 元素集合

[context].getElementsByClassName 元素集合

document.getElementsByName 節點集合

document.documentElement 獲取整個HTML對象

document.body 獲取整個BODY對象

document.head 獲取整個HEAD對象

[context].querySelector 一個元素對象

[context].querySelectorAll 獲取元素集合

...

getElementById

此方法的上下文只能是document

一個HTML頁面中的id理論上是不能重復的

1、如果頁面中的id重復了,我們獲取的結果是第一個id對應的元素對象

2、在IE7及更低版本瀏覽器中,會把表單元素的name值當做id來識別(項目中盡量不要讓表單的name和其他元素的id相同)

3、如果我們把JS放在結構的下面,我們可以直接使用ID值來獲取這個元素(不需要通過getElementById獲取),而且這種方式會把頁面中所有ID是他的元素都獲取到(元素對象/元素集合)=>不規范 不推薦

//=>獲取頁面中ID值為#box1的所有元素標簽
var allList=document.getElementsByTagName("*"),
    result=[];
for(var i=0;i

getElementByTagName

上下文是可以自己指定的

獲取到的結果是一個元素的集合(類數組集合)

1、獲取的結果是集合,哪怕集合中只有一項,我們想要操作這一項(元素對象),需要先從集合中獲取出來,然后再操作

2、在指定的上下文中,獲取所有子子孫孫元素中標簽名叫做這個的(后代篩選)


    

getElementsByClassName

上下文可以隨意指定

獲取的結果也是一個元素集合(類數組集合)

1、真實項目中我們經常會通過樣式類名來獲取元素,getElementsByClassName這個方法在IE6~8瀏覽器中是不兼容的

getElementsByName

通過元素的NAME屬性值獲取一組元素(類數組:節點集合 NOdeList)

它的上下文也只能是document

1、IE瀏覽器只能識別表單元素的那么屬性值,所以我們這個方法一般都是用來操作表單元素的

document.documentElement/document.body

獲取HTML或者BODY(一個元素對象)
//=>獲取當前瀏覽器窗口可視區域的寬度(當前頁面一屏的寬度)
document.documentElement.clientWidth||document.body.clientWidth
//=>clientHeight 獲取高度

querySelector/querySelectorAll

在IE6~8下不兼容,而且也沒什么特別好辦法處理它的兼容,所以這兩個方法一般多用于移動端開發使用

querySlector:獲取一個元素對象

querySlectorAll:獲取的是一個元素的集合

只要是css支持的選擇器,這里大部分都支持

DOM的節點

node:節點,瀏覽器認為在一個HTML頁面中所有內容都是節點(包括標簽,注釋,文字文本等)

元素節點 :HTML標簽

文本節點 :文字內容(高版本瀏覽器會把空格和換行也當作文本節點)

注釋節點:注釋內容

document文檔節點

...

元素節點

nodeType:1;

nodeName:大寫標簽名(在部分瀏覽器的怪異模式下,我們寫的標簽名是小寫,它獲取的就是小寫...)

nodeValue:null

[curEle].tagName:獲取當前元素的標簽名(獲取的標簽名一般都是大寫)

文本節點

nodeType:3

nodeName:#text

nodeValue:文本內容

注釋節點

nodeType:8

nodeName:#comment

nodeValue:注釋內容

文檔節點

nodeType:9

nodeName :#document

nodeValue:null

節點是用來描述頁面中每一部分之間關系的,只要可以獲取頁面中的一個節點,那么就可以通過相關的屬性和方法獲取頁面中的所有節點

childNodes

獲取當前元素所有的子節點(節點集合:類數組)

注:不僅僅是元素節點,文本、注釋等都會包含在內;子節點說明只是在兒子輩分中查找;

children

獲取所有的元素子節點(元素集合)

在IE6~8下獲取的結果和標準瀏覽器中有區別(IE6~8中會把注釋節點當做元素節點獲取到)

parentNode

獲取當前元素的父節點(元素對象)

previousSibling && nextSibling

previousSibling:獲取當前節點的上一個哥哥節點(不一定是元素節點也可以能是文本和注釋)

nextSibling:獲取當前節點的下一個弟弟節點

previousElementSibling && nextElementSibling

previousElementSibling:獲取當前節點的上一個哥哥元素節點

nextElementSibling:獲取當前節點下一個弟弟元素節點

IE6~8下不兼容

firstChild && lastChild

fristChild:當前元素所有子節點中的第一個(也不一定時元素節點,可能是文本和注釋)

lastChild:當前元素所有子節點中的最后一個

fristElementChild && lastElementChild (IE6~8 兼容)

DOM的增刪改
真實項目中,我們偶爾會在JS中動態創建一些HTML標簽,然后把其增加到頁面中

document.createElement

在JS中動態創建一個HTML標簽

appendChild

容器.appendChild(新元素)

把當前創建的新元素添加到容器的末尾位置

insertBefore

容器.insertBefore(新元素,老元素)

在當前容器中,把新創建的元素增加到老元素之前

//=>真實項目中很多需求都是通過動態創建元素來完成的,其中有一個需求:解析一個URL地址每一部分的信息(包含問號傳遞的參數值)
//->1.純字符串拆分
//->2.編寫強大的正則,捕獲到需要的結果
//->3.通過動態創建一個A標簽,利用A標簽的一些內置屬性來分別獲取每一個部分的內容
//->...
/***
    var link=document.createElement("a");
    link.;//->此處地址就是我們需要解析的URL
    //->hash:存儲了哈希值 "#teacher"
    //->hostname: 存儲的是域名 "http//www.andy.com"
    //->pathname: 存儲的是請求資源的路徑 "/stu/"
    //->protocol: 協議 "http:"
    //->search: 存儲的是問號傳遞參數值,沒有傳遞是字符串 "?name=andy&age=30&sex=0"
***/

function queryURLParameter(url){
    var link=document.createElement("a");
    link.href="url";
    var search=link.search,
        obj={};
    if(search.length===0) return;
    search=search.substr(1).split(/&|=/g);
    for(var i=0;i

removeChild

容器.removeChild(元素)

在當前容器中把某一個元素移除掉

replaceChild

容器.replaceChild(新元素,老元素)

在當前容器中,拿新元素替換老元素

cloneNode

元素.cloneNode(false/true)

把原有的元素克隆一份一模一樣的,false:只克隆當前的元素本身,true:深度克隆,把當前元素本身以及元素的所有后代都進行克隆

[set/get/remove]Attribute

給當前元素設置/獲取/移除 屬性的(一般操作的都是他的自定義屬性)

box.setAttribute("myIndex",0)

box.getAttribute("myIndex")

box.removeAttribute("myIndex")

使用xxx.index和xxx.setAttribute("index",0)這兩種設置自定義屬性的區別

xxx.index:是把當前操作的元素當做一個普通對象,為其設置一個屬性名(和頁面中的HTML標簽沒關系)

xxx.setAttribute:把元素當做特殊的元素對象來處理,設置的自定義屬性是和頁面結構中的DOM元素映射在一起的

JS中獲取的元素對象,我們可以把它理解為兩種角色:

與頁面HTML結構無關的普通對象

與頁面HTML結構存在映射關系的元素對象

元素對象中的內置屬性,大部分都和頁面的標簽存再映射關系:

xxx.style.backgroundColor="xxx" 此時不僅把JS中對象對應的屬性值改變了,而且也會映射到頁面的HTML標簽上(標簽中有一個style行內樣式,元素的樣式改變了)

xxx.className="xxx" 此時不僅是把JS對象中的屬性值改了,而且頁面中的標簽增加了class樣式類(可以看見的)

//獲取上一個哥哥元素節點
//=>獲取當前元素的上一個節點
//=>循環判斷:當上一個節點存在,并且上一個節點類型不為1時,持續循環,知道節點類型為1
function prevSibling(curELe){
    var p=curEle.previousSibling;
    while(p && typeof!==1){
        p=p.perviousSibling;
    }
    return p;
}
Date日期操作基礎講解
Date 是日期類,通過他可以對時間進行處理
var time=new Date();//獲取當前客戶端本機時間(當前獲取的時間不能作為重要的參考依據)

//=>獲取的結果是一個日期格式的對象:Mon Jul 02 2018 14:00:14 GMT+0800 (中國標準時間)

typeof new Date()->"object"

//=>time.getFullYear()獲取四位整數年
//=>time.getMonth() 獲取月0~11, 代表1~12月
//=>time.getDate() 獲取日
//=>time.getDay() 獲取星期(0~6)代表周日~周六
//=>time.getHours() 獲取小時
//=>time.getMinutes() 獲取分鐘
//=>time.getSeconds() 獲取秒
//=>time.getMilliseconds() 獲取毫秒
//=>time.getTime() 獲取當前日期距離"1970-01-01 00:00:00"毫秒差
var time=new Date("2017-10-22");//=>當new Date中傳遞一個時間格式的字符串,相當于把這個字符串轉換為標準的時間對象格式(轉換完成后,就可以調取上面我們講的那些方法了)
//=>時間格式的字符串
//"2017-10-22"(IE下識別不了)
//"2017/10/22"
//"2017/10/22 16:15:34"
//1530511656252(如果傳遞的是距離1970年的那個毫秒差,但是只能是數字)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95736.html

相關文章

  • JS基礎知識學習(三)

    摘要:基礎知識字符串中常用的方法在中用單雙引號包裹起來的都是字符串字符串就是由到多個字符組成的特點一以數字作為索引,從零開始特點二有屬性,存儲的是當前字符串中字符的個數字符長度如果指定的索引不存在獲取的結果是真實項目中,我們經常操作字符串,此時 js基礎知識 JavaScript 字符串中常用的方法 在JS中用單(雙)引號包裹起來的都是字符串 var str=welcome to my ho...

    keke 評論0 收藏0
  • JavaScript系列() - 收藏集 - 掘金

    摘要:函數式編程前端掘金引言面向對象編程一直以來都是中的主導范式。函數式編程是一種強調減少對程序外部狀態產生改變的方式。 JavaScript 函數式編程 - 前端 - 掘金引言 面向對象編程一直以來都是JavaScript中的主導范式。JavaScript作為一門多范式編程語言,然而,近幾年,函數式編程越來越多得受到開發者的青睞。函數式編程是一種強調減少對程序外部狀態產生改變的方式。因此,...

    cfanr 評論0 收藏0
  • vue學習筆記(

    摘要:提供了兩種向組件傳遞參數的方式。子路由項路徑不要使用開頭,以開頭的嵌套路徑會被當作根路徑。路由實例的方法這里學習兩個路由實例的方法和。實際上,是通過不同的將這些資源加載后打包,然后輸出打包后文件。 一、vue-router 1、簡介 我們經常使用vue開發單頁面應用程序(SPA)。在開發SPA過程中,路由是必不可少的部分,vue的官方推薦是vue-router。單頁面應用程序看起來好像...

    frank_fun 評論0 收藏0
  • vue學習筆記(

    摘要:提供了兩種向組件傳遞參數的方式。子路由項路徑不要使用開頭,以開頭的嵌套路徑會被當作根路徑。路由實例的方法這里學習兩個路由實例的方法和。實際上,是通過不同的將這些資源加載后打包,然后輸出打包后文件。 一、vue-router 1、簡介 我們經常使用vue開發單頁面應用程序(SPA)。在開發SPA過程中,路由是必不可少的部分,vue的官方推薦是vue-router。單頁面應用程序看起來好像...

    lwx12525 評論0 收藏0
  • 【Unity使用UGUI實現王者榮耀UI界面()】游戲開始界面

    摘要:章節介紹本書分為章,包括概述開始之旅初識用與后端接口進行數據聯動淺析的使用生命周期和鉤子函數解析組件的靈活使用下的使用前端框架實戰上市集團門戶網站開發實戰基于框架的后臺管理系統開發。另外,本書也適合作為相關培訓機構的教材使用。 ...

    stormjun 評論0 收藏0

發表評論

0條評論

zacklee

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<