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 && nextsibling
previouselementsibling && nextelementsibling
ie6~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
給當前元素設定/獲取/移除 屬性的(一般操作的都是他的自定義屬性)js中獲取的元素物件,我們可以把它理解為兩種角色:box.setattribute("myindex",0)
box.getattribute("myindex")
box.removeattribute("myindex")
使用***.index和***.setattribute("index",0)這兩種設定自定義屬性的區別
***.index:是把當前操作的元素當做乙個普通物件,為其設定乙個屬性名(和頁面中的html標籤沒關係)
***.setattribute:把元素當做特殊的元素物件來處理,設定的自定義屬性是和頁面結構中的dom元素對映在一起的
元素物件中的內建屬性,大部分都和頁面的標籤存再對映關係:
***.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 所...