DOM高級編程

W3C規定的三類DOM標準接口

Core DOM(核心DOM),適用于各種結構化文檔

XML DOM,專用于XML文檔

HTML DOM,專用于HTML文檔


表格的操作

添加行和單元格

var _table=document.createElement("table");?? //創建表

table.insertRow(i);??????????????//在table的第i行插入行

row.insertCell(i);?????????????????//在row的第i個位置插入單元格

引用單元格對象

table.rows[i].cells[i];

刪除行和單元格

table.deleteRow(index);

row.deleteCell(index);


//節點

alert(oD.nodeType);//node(節點)? type(類型)? 元素節點的類型的值是 1

// alert(oD.getAttributeNode("id").nodeType);? //屬性節點類型的值 2

// alert(oS.firstChild.nodeType);? //文本節點類型的值 3

// alert(oD.nodeValue);//元素節點的值? null

// alert(oD.getAttributeNode("id").nodeValue);//屬性節點的值是屬性的值

alert(oS.firstChild.nodeValue);//文本節點的值是文本的內容


//屬性節點

var btn = document.getElementsByTagName("button");

var pic = document.getElementById("pic");

btn[0].onclick = function(){

// alert(pic.src); //HTML DOM

// alert(pic.getAttribute("src"))? //core DOM

// alert(pic.a)

// alert(pic.getAttribute("a"));//

// pic.src = "img/timg.gif";

// pic.setAttribute("src","img/timg.gif");

// pic.b = "hh";

pic.setAttribute("b","hh");

// HTML dom

// 元素對象.屬性名? ? 不能獲取或者設置自定義的屬性的值

//

// core DOM

// 元素對象.getAttribute("屬性名")? 可以獲取自定義的屬性的值

// 元素對象.setAttribute("屬性名","屬性值")? 可以設置自定義的屬性名和屬性值


層次間關系:

// 通過父親找孩子

// 父元素對象.firstChild? 單個

// 父元素對象.lastChild? 單個

// 父元素對象.childNodes? 多個? ? 通過下標訪問單個子元素

通過孩子找父親

子元素對象.parentNode? 單個


// 水平間的查找

// 往前查找:

// 元素對象.previousSibling? 元素對象的前一個節點? 單個

//

// 往后查找:

// 元素對象.nextSibling? ? ? 元素對象的后一個節點? 單個


節點三種類型:

元素節點? ? 對象.nodeType? 類型的返回值:1

屬性節點? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2

文本節點? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3

nodeValue

父子之間的關系

通過父節點找子節點:

父節點.firstChild? ? 單個

父節點.lastChild? ? 單個

父節點.childNodes? ? 多個? ? 通過下標去訪問單個的子節點

通過子節點找父節點

子節點.parentNode? 單個

平行關系

元素對象.previousSibling? 單個

元素對象.nextSibling? ? ? 單個

獲取屬性值:

HMTL DOM 元素對象.屬性名

CORE DOM 元素對象.getAttribute("屬性名")

設置屬性及屬性值

HTML DOM 元素對象.屬性名 = 屬性值

CORE DOM 元素對象.setAttribute("屬性名","屬性值")

//查找前一個元素節點兄弟

function prev(elem){

do{

elem = elem.previousSibling;

}

while(elem && elem.nodeType != 1);

return elem;

}

//查找后一個元素節點

function next(elem){

do{

elem = elem.nextSibling;

}

while(elem && elem.nodeType != 1);

return elem;

}

//查找第一子元素節點

function first(elem){

elem = elem.firstChild;

// if(elem.nodeType != 1){

// return next(elem);

// }else{

// return elem;

// }

return elem.nodeType != 1 ? next(elem) : elem;

}

//查找最后一個子元素節點

function last(elem){

elem = elem.lastChild;

return elem && elem.nodeType != 1 ? prev(elem) : elem;

}

//查找前一個節點

function prev(elem){

do{

elem = elem.previousSibling;

}

while(elem.nodeType != 1);

return elem;

}

//查找后一個元素節點

function next(elem){

do{

elem = elem.nextSibling;

}

while(elem && elem.nodeType != 1);

return elem;

}


創建新元素對象:

// document.createElement("標簽名字")

// 增加元素:


// 父元素對象.appendChild(要追加的子元素)

父元素對象.insertBefore(新插入的元素,參照物元素)


克隆節點:

// 元素對象.cloneNode(參數)

// 參數:可選的? 是一個布爾值? 默認false? 參數省略或為false時,克隆的只是自身,子節點不會被克隆

// ? 參數為true時,克隆的不僅是自身,還有子節點


克隆節點:

// 元素對象.cloneNode(參數)

// 參數:可選的? 是一個布爾值? 默認false? 參數省略或為false時,克隆的只是自身,子節點不會被克隆

// ? 參數為true時,克隆的不僅是自身,還有子節點


刪除節點

// 父元素對象.removeChild(子元素)

// 替換節點:

// 父元素對象.replaceChild(新的元素,老元素對象)


html dom 操作表格

插入行

table對象.insertRow(索引號)

插入列

行對象.insertCell(索引號)

引用行

table對象.rows[下標]

引用單元格

table對象.rows[下標].cells[下標]

刪除行

table對象.deleteRow(索引號)

刪除單元格

table對象.rows[下標].deleteCell(索引號)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,237評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,957評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,248評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,356評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,081評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,485評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,534評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,720評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,263評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,025評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,204評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,787評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,461評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,874評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,105評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,945評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,205評論 2 375

推薦閱讀更多精彩內容

  • DOM DOM內容主要分為四部分: 什么是DOM和節點; 獲取節點; 節點操作(3種); 屬性操作(3種)。 什么...
    magic_pill閱讀 786評論 0 1
  • 前言 歸根結底,代碼都是思想和概念的體現。沒人能把一種程序設計語言的所有語法和關鍵字都記住,可以查閱參考書來解決。...
    朱細細閱讀 2,954評論 4 14
  • 本章內容 理解包含不同層次節點的 DOM 使用不同的節點類型 克服瀏覽器兼容性問題及各種陷阱 DOM 是針對 HT...
    悶油瓶小張閱讀 655評論 0 1
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,777評論 1 92
  • 聚會回來,你一直目光游離 那是我從來沒見過的 ---有太多陌生的你, 興奮里參半著有惆悵, 迷茫中滲透著憂傷, 飯...
    枯藤殘鴉閱讀 264評論 0 0