JS基礎知識學習(四)

2021-09-13 15:33:43 字數 4425 閱讀 5658

dom:document.object model 文件物件模型,提供一些屬性和方法可以讓我們去操作dom元素。
node:節點,瀏覽器認為在乙個html頁面中所有內容都是節點(包括標籤,注釋,文字文字等)

元素節點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 && nextsiblingpreviouselementsibling && nextelementsiblingie6~8下不相容

firstchild && lastchild

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

lastchild:當前元素所有子節點中的最後乙個

fristelementchild && lastelementchild(ie6~8 相容)

真實專案中,我們偶爾會在js中動態建立一些html標籤,然後把其增加到頁面中
document.createelement

在js中動態建立乙個html標籤
把當前建立的新元素新增到容器的末尾位置

insertbefore

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

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

//=>真實專案中很多需求都是通過動態建立元素來完成的,其中有乙個需求:解析乙個url位址每一部分的資訊(包含問號傳遞的引數值)

//->1.純字串拆分

//->2.編寫強大的正則,捕獲到需要的結果

//->3.通過動態建立乙個a標籤,利用a標籤的一些內建屬性來分別獲取每乙個部分的內容

//->...

/***

var link=document.createelement("a");

link.href="";//->此處位址就是我們需要解析的url

//->hash:儲存了雜湊值 "#teacher"

//->hostname: 儲存的是網域名稱 "http"

//->pathname: 儲存的是請求資源的路徑 "/stu/"

//->protocol: 協議 "http:"

//->search: 儲存的是問號傳遞引數值,沒有傳遞是字串 "?name=andy&age=30&***=0"

***/

function queryurlparameter(url);

if(search.length===0) return;

search=search.substr(1).split(/&|=/g);

for(var i=0;iremovechild

容器.removechild(元素)

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

replacechild

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

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

clonenode

元素.clonenode(false/true)

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

[set/get/remove]attribute

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

box.setattribute("myindex",0)

box.getattribute("myindex")

box.removeattribute("myindex")

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

***.index:是把當前操作的元素當做乙個普通物件,為其設定乙個屬性名(和頁面中的html標籤沒關係)

***.setattribute:把元素當做特殊的元素物件來處理,設定的自定義屬性是和頁面結構中的dom元素對映在一起的

js中獲取的元素物件,我們可以把它理解為兩種角色:

元素物件中的內建屬性,大部分都和頁面的標籤存再對映關係:

***.style.backgroundcolor="***" 此時不僅把js中物件對應的屬性值改變了,而且也會對映到頁面的html標籤上(標籤中有乙個style行內樣式,元素的樣式改變了)

***.classname="***" 此時不僅是把js物件中的屬性值改了,而且頁面中的標籤增加了class樣式類(可以看見的)

//獲取上乙個哥哥元素節點

//=>獲取當前元素的上乙個節點

function prevsibling(curele)

return p;

}

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(如果傳遞的是距離2023年的那個毫秒差,但是只能是數字)

js 學習筆記 js基礎知識

值型別 字串,數字,bool,symbol 引用型別 object,array,function,null typeof能識別所有值型別,識別函式,判斷是否是引用型別 不可再細分 淺拷貝 改變拷貝物件的值,原值改變 深拷貝 改變拷貝物件的值,原值不改變 如何實現深拷貝 運算子 當加號運算子時,str...

Js 基礎知識學習 02

js中乙個函式應該只返回一種型別的值 雖然沒有辦法返回多參但是有其他實現的方式 比如返回json array相當於變相的實現多參 函式既可以通過arguments獲取傳遞的引數,也可以通過宣告函式時指定的形參來獲取 window.onload function function css a,b,c,...

Python基礎知識學習(四)

1 遍歷列表 list1 今天 天氣很好 123 456 abc xyz for x in list1 print x 輸出結果 今天 天氣很好 123 456 abc xyz 接下來,我們進一步遍歷 注意 這種方法只能適用於 元素的格式和數量都相同時 以這段 為例,上次遍歷之後格式都為 x,y 所...