1 dom把你編寫的網頁文件轉換為乙個文件物件;物件是一種自足的資料集合;與某個特定物件相關聯的變數被稱為這個物件的屬性;只能通過某個特定函式去呼叫的函式被稱為這個物件的方法;
2物件可以分為三種型別:使用者定義物件、內建物件、宿主物件;
宿主物件最基本的物件window
物件;bom(
瀏覽器物件模型);
3 dom把文件表示為一顆家譜樹;家譜樹本身就是一種模型;根元素是
html
,html
代表整個文件;
4 節點(
node
)這個詞是網路術語,他表示網路中的乙個連線點;乙個網路就是由一些節點構成的集合;包含著其他型別的節點
: 元素節點、文字節點、屬性節點;
5 在「購物清單」例子裡,
元素包含著文字「
don』t forget to buy this stuff 」
.他是乙個文字節點(
text node
);文字節點總是被包含在元素節點的內部;但並非所有的元素節點都包含文字節點;
6 dom的原子是元素節點(
element nod);
7 屬性節點(
attribute nod
)對元素做出更具體的描述;
例:」a gentle reminder」>don』t forget to buy this stuff.
在dom
中tittle=」a gentle reminder」是乙個屬性節點;
8 並非所有的元素都包含著屬性,但所有的屬性都被元素包含著;
9 繼承(
inheritance
)是css
技術中一項強大的功能;為了把某乙個或某幾個元素與其他元素區別開來,需要使用
class
屬性和id
屬性;
10可以在網頁上任意任用
class
屬性,可以為
class
屬性相同的所有元素定義同一種樣式;
11id屬性的用途是給網頁裡的某個元素加上獨一無二的識別符號;
id本身只能使用一次;
id就像是乙個掛鉤,一頭連著文件裡的某個元素,另一頭連著
css樣式表裡的某個樣式;
dom也可以使用這種掛鉤;
12三種
dom方法獲取元素節點:
getelementbyid, getelementsbytagname, getelementsbyclassname;
13 getelementbyid,這個方法將返回乙個與那個給定
id屬性值的元素節點對應的物件;請注意區分大小寫;他是
document
物件特有的函式;在指令碼**裡函式名的後面必須跟有一對圓括號,這對括號包含著函式的引數;
getelementbyi
方法只有乙個引數:你想獲得的那個元素的
id屬性的值,這個
id值必須放在單引號或雙引號裡;
document.getelementbyid(「purchases」);
14 type of 操作符可以告訴我們他的運算元是乙個字串、陣列、函式、布林值、還是物件;alert (typeof document.getelementbyid(「purchases」));
15我本人並不贊成把
js**直接嵌入文件,但這確實是簡單快捷的測試手段;
16 事實上文件中的每個元素都有物件;利用
dom提供的方法能得到任何乙個物件;
17 getelementsbytagname方法返回乙個物件陣列,每個物件分別對應著文件裡有著給定標籤的乙個元素;這個方法也只是只有乙個引數的函式,他的引數是標籤的名字:
element.getelementsbytagname(tag);
例:document.getelementsbytagname(「li」);這個呼叫將返回乙個物件陣列,每個物件都對應著document
物件中的乙個列表項元素;與任何其他陣列一樣我們可以利用
length
屬性查出這個陣列裡的元素個數;
alert (document.getelementsbytagname(「li」).length);
18 改善**的可讀性:只要把
document.getelementsbytagname(「li」) 賦值給乙個變數即可;
var iteams=document.getelementsbytagname(「li」);
for(var i=0;i{
alert(typeof iteams[「i」]);
19萬用字元必須放在引號裡
(「*」);如果你想知道某份元素裡總共有多少元素節點,像下面這樣使用萬用字元即可:alert (document.getelementsbytagname(「*」).lenth);
20 getelementsbyclassname可以通過
class
屬性中的類名來訪問元素;也只接受乙個函式就是類名
getelementsbyclassname(class);
用這個方法還可以查詢那些帶有多個類名的元素;
alert (document.getelementsbyclassname(「important sale」).length);不僅類名的實際順序不重要,就算元素還帶有更多類名也沒有關係;
21 get attribute是乙個函式。他只有乙個引數
-你打算查詢的屬性的名字:
object.getattribute(attribute);
22 getattribute方法不屬於
document
物件,所以不能通過
document
物件呼叫,他只能通過元素節點物件呼叫;
23 if(something)比if(
something!=null
)更簡明的**;
24 setattribute也只能用於元素節點,允許我們對屬性節點值做出修改;
語法:object.setattribute(attribute,value);
25 如果乙個屬性的節點原先並不存在,
setattribute
先建立這個屬性在設定他的值;如果用在乙個本身就有這個屬性的元素節點上,這個屬性值就和被覆蓋掉;
26 通過
setattribute
對文件做出修改後,不會反應在文件本身的源**裡;因為
dom的工作模式先載入文件的靜態內容,再動態重新整理,動態重新整理不影響文件的靜態內容;這正是
dom的真正威力:對頁面內容進行重新整理卻不需要在瀏覽器裡重新整理頁面;
JS基礎3 DOM文件
二 文件操作 1.結構規範 document html head meta title body1.獲取文件元素 charset utf 8 this is a pagetitle head id test 人物簡介h1 id introduce class cli test 這是乙個萬眾矚目的人物...
AJAX學習 DOM基礎 2
閒話少說,繼續學習dom的一些基礎知識 childnodes 可以將節點樹中任何乙個元素的所有子元素檢索出來,這個屬性返回乙個陣列,包含 了給定元素節點的全體子元素。nodetype 一般用於文字節點 用來區分節點的型別,元素節點的nodetype屬性值是1,屬性節點的nodetype屬性值 是2,...
JS基礎學習二 DOM
b 獲取節點 b document.getelementbyid nodeid document.getelementsbytagname nodetagname b 樹形操作 b firstchild lastchild childnodes parentnode nextsibling 同級的下...