DOM和表單提操作

一台猴、概念
1类腮、DOM
DOM:Document Object Model 文檔對(duì)象模型
要實(shí)現(xiàn)頁(yè)面的動(dòng)態(tài)交互效果椅文,bom 操作遠(yuǎn)遠(yuǎn)不夠缭嫡,需要操作 html 才是核心缔御。如何操作 htm,就是 DOM妇蛀。簡(jiǎn)單的說(shuō)耕突,dom 提供了用程序動(dòng)態(tài)控制 html 接口。DOM 即文檔對(duì)象模型描 繪了一個(gè)層次化的節(jié)點(diǎn)樹(shù)评架,運(yùn)行開(kāi)發(fā)人員添加眷茁、移除和修改頁(yè)面的某一部分。dom 處于 javascript 的核心地位上纵诞。
每個(gè)載入瀏覽器的 HTML 文檔都會(huì)成為 Document 對(duì)象上祈。Document 對(duì)象使我們可以從腳 本中對(duì)HTML 頁(yè)面中的所有元素進(jìn)行訪問(wèn)。Document 對(duì)象是 Window 對(duì)象的一部分,可通過(guò) window.document 屬性對(duì)其進(jìn)行訪問(wèn)登刺。
2籽腕、節(jié)點(diǎn)
加載 HTML 頁(yè)面時(shí),Web 瀏覽器生成一個(gè)樹(shù)型結(jié)構(gòu)纸俭,用來(lái)表示頁(yè)面內(nèi)部結(jié)構(gòu)节仿。DOM 將這 種樹(shù)型結(jié)構(gòu)理解為由節(jié)點(diǎn)組成,組成一個(gè)節(jié)點(diǎn)樹(shù)掉蔬。對(duì)于頁(yè)面中的元素廊宪,可以解析成以下幾種類 型的節(jié)點(diǎn):

節(jié)點(diǎn)類型       HTML內(nèi)容                   例如
文檔節(jié)點(diǎn)      文檔本身                       整個(gè)文檔document
元素節(jié)點(diǎn)       所有的HTML元素         a、div女轿、p
屬性節(jié)點(diǎn)       HTML元素內(nèi)的屬性     id箭启、href、name蛉迹、class
文本節(jié)點(diǎn)       元素內(nèi)的文本               hello
注釋節(jié)點(diǎn)       HTML中的注釋           <!--   -->
clipboard1.png

二傅寡、元素節(jié)點(diǎn)的操作
當(dāng) HTML 文檔在被解析為一顆 DOM 樹(shù)以后,里面的每一個(gè)節(jié)點(diǎn)都可以看做是一個(gè)一個(gè)的 對(duì)象北救,我們成為 DOM 對(duì)象荐操,對(duì)于這些對(duì)象,我們可以進(jìn)行各式各樣的操作珍策,查找到某一個(gè)或 者一類節(jié)點(diǎn)對(duì)象托启,可以創(chuàng)建某種節(jié)點(diǎn)對(duì)象,可以在某個(gè)位置添加節(jié)點(diǎn)對(duì)象攘宙,甚至可以動(dòng)態(tài)地刪 除節(jié)點(diǎn)對(duì)象屯耸,這些操作可以使我們的頁(yè)面看起來(lái)有動(dòng)態(tài)的效果,后期結(jié)合事件使用蹭劈,就能讓我 們的頁(yè)面在特定時(shí)機(jī)疗绣、特定的事件下執(zhí)行特定的變換。

  1. 獲取節(jié)點(diǎn)
    在進(jìn)行增铺韧、刪多矮、改的操作時(shí),都需要指定到一個(gè)位置哈打,或者找到一個(gè)目標(biāo)塔逃,此時(shí)我們就可 以通過(guò) Document 對(duì)象提供的方法,查找前酿、定位某個(gè)對(duì)象(也就是我們說(shuō)的節(jié)點(diǎn))患雏。
    注意:操作 dom 必須等節(jié)點(diǎn)初始化完畢后,才能執(zhí)行罢维。處理方式兩種:
    (1)把 script 調(diào)用標(biāo)簽移到 html 末尾即可淹仑;
    (2)使用 onload 事件來(lái)處理 JS丙挽,等待 html 加載完畢再加載 onload 事件里的 JS。
方法                                        描述 
getElementById()                   根據(jù) id 獲取 dom 對(duì)象匀借,如果 id 重復(fù)颜阐,那么以第一個(gè)為準(zhǔn) 
getElementsByTagName()     根據(jù)標(biāo)簽名獲取 dom 對(duì)象數(shù)組 
getElementsByClassName() 根據(jù)樣式名獲取 dom 對(duì)象數(shù)組 
getElementsByName()           根據(jù) name屬性值獲取 dom 對(duì)象數(shù)組,常用于多選獲取值 
  1. 創(chuàng)建節(jié)點(diǎn)和插入節(jié)點(diǎn)
    * 創(chuàng)建節(jié)點(diǎn)
方法                       描述 
createElement()    創(chuàng)建一個(gè)新的節(jié)點(diǎn)吓肋,需要傳入節(jié)點(diǎn)的標(biāo)簽名稱凳怨,返回創(chuàng)建的元素對(duì)象 
createTextNode()   創(chuàng)建一個(gè)文本節(jié)點(diǎn),可以傳入文本內(nèi)容 innerHTML 
                               也能達(dá)到創(chuàng)建節(jié)點(diǎn)的效果是鬼,直接添加到指定位置了 
    *  插入節(jié)點(diǎn) 
方法                         描述 
write()                      將任意的字符串插入到文檔中 
appendChild()         向元素中添加新的子節(jié)點(diǎn)肤舞,作為最后一個(gè)子節(jié)點(diǎn) 
insertBefore()          向指定的已有的節(jié)點(diǎn)之前插入新的節(jié)點(diǎn) 
                                    newItem:要插入的節(jié)點(diǎn) 
                                    exsitingItem:參考節(jié)點(diǎn)    需要參考父節(jié)點(diǎn) 
  /**
         * 替換元素
         */
        function replaceNode() {
            // oldNode.parentNode.replaceChild(newNode,oldNode) 
            // 首先通過(guò)舊節(jié)點(diǎn)定位到父節(jié)點(diǎn),然后用新的節(jié)點(diǎn)替換舊節(jié)點(diǎn)
            var cxy = document.getElementById("test");
            // 創(chuàng)建新節(jié)點(diǎn)
            var span = document.createElement("span");
            span.innerHTML = "攻城獅";
            cxy.parentNode.replaceChild(span,cxy);
        }
        
        /**
         * cloneNode()      復(fù)制節(jié)點(diǎn)
                var 復(fù)制好的節(jié)點(diǎn) = 被復(fù)制的節(jié)點(diǎn).cloneNode([true/false]);
                true:深度克隆均蜜,可以克隆結(jié)構(gòu)和內(nèi)容
                false(默認(rèn)值):只克隆結(jié)構(gòu)
         */
        function cloneValue() {
            // 得到被克隆的對(duì)象
            var cloneValue = document.getElementById("music");
            var newValue = cloneValue.cloneNode(false); // 淺度克隆李剖,只克隆結(jié)構(gòu)
            console.log(newValue);
            var deepValue = cloneValue.cloneNode(true); // 克隆結(jié)構(gòu)及內(nèi)容
            console.log(deepValue);
            
            // 將克隆好的結(jié)果追加到div中
            document.getElementById("mydiv").appendChild(deepValue);
        }
         
  1. 間接查找節(jié)點(diǎn)
方法|屬性        描述 
childNodes ()   返回元素的一個(gè)子節(jié)點(diǎn)的數(shù)組 
firstChild()    返回元素的第一個(gè)子節(jié)點(diǎn) 
lastChild()     返回元素的最后一個(gè)子節(jié)點(diǎn) 
nextSibling     返回元素的下一個(gè)兄弟節(jié)點(diǎn) 
parentNode      返回元素的父節(jié)點(diǎn) 
previousSibling 返回元素的上一個(gè)兄弟節(jié)點(diǎn) 

// 得到div對(duì)象
var div1 = document.getElementById("div1");
// childNodes ()        返回元素的一個(gè)子節(jié)點(diǎn)的數(shù)組
console.log(div1.childNodes);
// firstChild()         返回元素的第一個(gè)子節(jié)點(diǎn)
console.log(div1.firstChild);
// lastChild()      返回元素的最后一個(gè)子節(jié)點(diǎn)
console.log(div1.lastChild);
// parentNode           返回元素的父節(jié)點(diǎn)
console.log(div1.parentNode);
// nextSibling      返回元素的下一個(gè)兄弟節(jié)點(diǎn)
console.log(div1.nextElementSibling); // 下一個(gè)元素節(jié)點(diǎn)(元素)
console.log(div1.nextSibling); // 下一個(gè)節(jié)點(diǎn)(包含文本節(jié)點(diǎn))
//  previousSibling     返回元素的上一個(gè)兄弟節(jié)點(diǎn)
console.log(div1.previousElementSibling); // 上一個(gè)元素節(jié)點(diǎn)(元素)
console.log(div1.previousSibling); // 上一個(gè)節(jié)點(diǎn)(包含文本節(jié)點(diǎn))
  1. 替換節(jié)點(diǎn)
方法|屬性 描述 
replaceChild(newNode,oldNode) 用新的節(jié)點(diǎn)替換舊的節(jié)點(diǎn) 
    oldNode.parentNode.replaceChild(newNode,oldNode) 
    首先通過(guò)舊節(jié)點(diǎn)定位到父節(jié)點(diǎn),然后用新的節(jié)點(diǎn)替換舊節(jié)點(diǎn)
  1. 克隆節(jié)點(diǎn)
方法|屬性 描述 
cloneNode() 復(fù)制節(jié)點(diǎn)  
var 復(fù)制好的節(jié)點(diǎn) = 被復(fù)制的節(jié)點(diǎn).cloneNode([true/false]); 
    true:深度克隆囤耳,可以克隆結(jié)構(gòu)和內(nèi)容 
    false(默認(rèn)值):只克隆結(jié)構(gòu) 
  1. 刪除節(jié)點(diǎn)
    方法|屬性 描述
    removeChild() 從元素中移除子節(jié)點(diǎn)
    三篙顺、表單操作
    表單是我們頁(yè)面向后臺(tái)傳輸數(shù)據(jù)的一種非常常見(jiàn)的方式,在進(jìn)行數(shù)據(jù)發(fā)送(請(qǐng)求發(fā)出)之 前充择,我們應(yīng)該現(xiàn)在頁(yè)面進(jìn)行一系列數(shù)據(jù)合法性的驗(yàn)證德玫,節(jié)省不必要的錯(cuò)誤數(shù)據(jù)的傳輸,以及提 高用戶的體驗(yàn)度椎麦。
    1宰僧、獲取表單
document.表單名稱 
document.getElementById(表單 id);
document.forms[表單名稱]
document.forms[索引]; //從 0 開(kāi)始 
<body>  
    <form id='myform' name="myform" action="" method="post">
    </form> 
    <form id='myform2' name="myform2" action="" method="post">
    </form> 
</body> 
<script>  
    //四種方式  var form =document.getElementById("myform");  
    form =document.myform;  
    form =document.forms["myform"];  
    form =document.forms[0];  
    console.log(form); 
</script> 

2、獲取元素
* 獲取 input 的元素

1)铃剔、通過(guò) id 獲热鼋啊:document.getElementById(元素 id); 
2)查刻、通過(guò) form.名稱形式獲取: myform.元素名稱;  ?  name 屬性值 
3)键兜、通過(guò) name 獲取 :document.getElementsByName(元素名稱)[索引] //從 0 開(kāi)始 
4)、通過(guò) tagName 數(shù)組 :document.getElementsByTagName('input')[索引] //從 0 開(kāi)始 
 
<body>  
    <form id='myform' name="myform" action="" method="get">     
    姓名:<input type="text" id="uname" name="uname" value="zs"/>
    <br />   
    密碼:<input type="password" id="upwd" name="upwd" value="123456" />
    <br />   <input type="hidden" id="uno" name="uno" value="隱藏域" />   
    個(gè)人說(shuō)明:<textarea name="intro"></textarea>   
    <button type="button" onclick="getTxt();" >
    獲取元素內(nèi)容</button>  
    </form> 
</body> 
<script>  
    function getTxt(){   
        var uno =document.getElementById("uno");   
        var uname =myform.uname;   
        console.log(uname+"--------");   
        var upwd =document.getElementsByTagName('input')[1] ;   
        var intro =document.getElementsByName("intro")[0];       
        alert(uno.value+"-->"+uname.value +"-->"+upwd.value+"->"+intro.value);  
      } 
 </script> 
    *  獲取 單選按鈕 
前提:將一組單選按鈕設(shè)置相同的 name 屬性值 
(1)獲取單選按鈕組:   document.getElementsByName("name 屬性值");  
(2)遍歷每個(gè)單選按鈕穗泵,并查看單選按鈕元素的 checked 屬性   若
    屬性值為 true 表示被選中普气,否則未被選中  
選中狀態(tài)設(shè)定:  checked=’checked’  或  checked=’true’  或  checked  
未選中狀態(tài)設(shè)定:   沒(méi)有 checked 屬性   或  checked=’false’  
<form action="" name="myform">  
    <input type="text" name="inputName" value="aaa" /> 
     <input type="radio" name="rad" value="1" /> 1  
     <input type="radio" name="rad" value="2"  /> 2 
 </form>    
<script type="text/javascript"> 
  var radios = document.getElementsByName('rad')  
  //radios[0].checked = 'checked'  
  for(var i=0; i<radios.length; i++){  
      console.log(radios[i].checked + '---' + radios[i].value) 
   } 
</script> 
    *  獲取 多選按鈕 
操作方式與單選同理,不同之處在于可以多選 
var ufav=document.getElementsByName("ufav"); var favstr="";     
for (i=0;i<ufav.length;i++){        
     if(ufav[i].checked){             
     favstr+=ufav[i].value+",";      
     }    
} 
favstr =favstr.substr(0,favstr.length-1); 
    *  獲取下拉選項(xiàng) 
(1)獲取 select 對(duì)象: var ufrom = document.getElementById("ufrom"); 
(2)獲取選中項(xiàng)的索引: var idx=ufrom.selectedIndex ; 
(3)獲取選中項(xiàng) options 的 value 屬性值: 
var val = ufrom.options[idx].value; 
注意:當(dāng)通過(guò) options 獲取選中項(xiàng)的 value 屬性值時(shí)佃延,  
若沒(méi)有 value 屬性现诀,則取 option 標(biāo)簽的內(nèi)容  
若存在 value 屬性,則取 value 屬性的值 
(4)獲取選中項(xiàng) options 的 text: 
var txt = ufrom.options[idx].text; 
選中狀態(tài)設(shè)定:selected='selected'履肃、selected=true仔沿、selected 
未選中狀態(tài)設(shè)定:不設(shè) selected 屬性   
<body>
        來(lái)自:
            <select id="ufrom" name="ufrom" >
                <option value="-1" >請(qǐng)選擇</option>
                <option selected="selected">北京</option>
                <option value="1" >上海</option>
            </select><br />
    </body>
 <script type="text/javascript">
        // (1)獲取 select 對(duì)象
        var sel = document.getElementById("ufrom");
        
        // (2)獲取選中項(xiàng)的索引
        var selectIndex = sel.selectedIndex;
        console.log("當(dāng)前選中項(xiàng)的索引:" + selectIndex);
        
        // (3)獲取選中項(xiàng) options 的 value 屬性值
        var value1 = sel.value;
        var value2 = sel.options[selectIndex].value;
        console.log("當(dāng)前選中項(xiàng)的值:" + value1 + "," + value2);
        
        // (4)獲取選中項(xiàng) options 的 text
        var text1 = sel.options[selectIndex].innerHTML;
        var text2 = sel.options[selectIndex].text;
        console.log("當(dāng)前選中項(xiàng)的文本:" + text1 + "," + text2);
        
    </script> 

3、提交表單

注:提交表單時(shí)尺棋,表單元素必須設(shè)置name屬性值
提交類型:
    get請(qǐng)求
        參數(shù)會(huì)直接跟在地址欄后面顯示封锉,請(qǐng)求參數(shù)的長(zhǎng)度有限,相對(duì)post而言不安全,
            不會(huì)自動(dòng)刷新緩存成福;每次訪問(wèn)時(shí)優(yōu)先獲取緩存中的數(shù)據(jù)碾局,所以請(qǐng)求速度快。
    post請(qǐng)求 (需要服務(wù)器的支持)
        參數(shù)不會(huì)跟在地址欄后面顯示奴艾,請(qǐng)求參數(shù)長(zhǎng)度不限(其實(shí)是有長(zhǎng)度限制净当,
            與服務(wù)器相關(guān)),相對(duì)而言安全蕴潦,會(huì)自動(dòng)刷新緩存像啼;請(qǐng)求速度相對(duì)而言慢。
通常做查詢操作潭苞,使用GET請(qǐng)求埋合;增刪改使用POST請(qǐng)求。
提交表單
    (1)使用普通 button 按鈕+onclick 事件+事件中編寫(xiě)代碼:
    獲取表單.submit();
    (2)使用 submit 按鈕 + onclick="return 函數(shù)()" +函數(shù)編寫(xiě)代碼: 
    最后必須返回:return true|false;
    (3)使用 submit 按鈕/圖片提交按鈕 + 表單 onsubmit="return 函數(shù)();" +函數(shù)編寫(xiě)代碼: 
    最后必須返回:return true|false;
<form action="01-獲取表單.html" method="get">
            姓名:<input type="text" name="uname" />
            <input type="submit" value="提交" onclick="return checkForm1()"/>
        </form>
        
        <form action="01-獲取表單.html" method="get" onsubmit="return checkForm2()">
            姓名:<input type="text" name="uname" />
            <input type="submit" value="提交" />
        </form>
        
        <form action="01-獲取表單.html" method="get" >
            姓名:<input type="text" name="uname1" />
            <input type="button" value="提交" onclick="checkForm3()" />
            <span id="msg" style="font-size: 12px;color: red;"></span>
</form>

<script type="text/javascript">
        /*提交方式一:submit按鈕 + onclick事件*/
        // 給submit按鈕綁定點(diǎn)擊事件萄传,調(diào)用時(shí)需要使用"return 函數(shù)名()"甚颂,定義的函數(shù)中需要return true或false;
        //如果return true秀菱,則提交表單振诬;return false不提交;若直接return也會(huì)提交表單
        function checkForm1() {
            //return true; // 提交表單
            return false; // 不提交表單
            //return; // 無(wú)效衍菱,不會(huì)阻止表單提交
        }
        
        
        /*提交方式二:submit按鈕 + onsubmit事件*/
        // 給表單對(duì)象綁定onsubmit事件赶么,調(diào)用時(shí)需要使用"return 函數(shù)名()",定義的函數(shù)中需要return true或false脊串;
        //如果return true辫呻,則提交表單;return false不提交琼锋;若直接return也會(huì)提交表單
        function checkForm2() {
            return true; // 提交表單
            //return false; // 不提交表單
            //return; // 無(wú)效放闺,不會(huì)阻止表單提交
        }
        
        /*提交方式三:button按鈕+點(diǎn)擊事件*/
        // 給button按鈕綁定點(diǎn)擊事件,調(diào)用時(shí)需要使用"函數(shù)名()"缕坎,如果滿足要求則手動(dòng)提交表單怖侦,否則return
        function checkForm3() {
            var uname = document.getElementsByName("uname1")[0].value;
            if ( uname == null || uname.trim() == "") {
                console.log("用戶名不能為空!");
                document.getElementById("msg").innerHTML = "用戶名不能為空谜叹!";
                return;
            }
            
            // 手動(dòng)提交表單
            document.forms[2].submit();
        }
        
        
    </script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末匾寝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子荷腊,更是在濱河造成了極大的恐慌艳悔,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件女仰,死亡現(xiàn)場(chǎng)離奇詭異猜年,居然都是意外死亡邑滨,警方通過(guò)查閱死者的電腦和手機(jī)嘁字,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)瞭稼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)潮剪,“玉大人,你說(shuō)我怎么就攤上這事袁稽∥鹆В” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵推汽,是天一觀的道長(zhǎng)补疑。 經(jīng)常有香客問(wèn)我,道長(zhǎng)歹撒,這世上最難降的妖魔是什么莲组? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮暖夭,結(jié)果婚禮上锹杈,老公的妹妹穿的比我還像新娘。我一直安慰自己迈着,他們只是感情好竭望,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著裕菠,像睡著了一般咬清。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奴潘,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天旧烧,我揣著相機(jī)與錄音,去河邊找鬼画髓。 笑死掘剪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雀扶。 我是一名探鬼主播杖小,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼愚墓!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起昂勉,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浪册,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后岗照,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體村象,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笆环,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厚者。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躁劣。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖库菲,靈堂內(nèi)的尸體忽然破棺而出账忘,到底是詐尸還是另有隱情,我是刑警寧澤熙宇,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布鳖擒,位于F島的核電站,受9級(jí)特大地震影響烫止,放射性物質(zhì)發(fā)生泄漏蒋荚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一馆蠕、第九天 我趴在偏房一處隱蔽的房頂上張望期升。 院中可真熱鬧,春花似錦互躬、人聲如沸吓妆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)行拢。三九已至,卻和暖如春诞吱,著一層夾襖步出監(jiān)牢的瞬間舟奠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工房维, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沼瘫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓咙俩,卻偏偏與公主長(zhǎng)得像耿戚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阿趁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • ??DOM(文檔對(duì)象模型)是針對(duì) HTML 和 XML 文檔的一個(gè) API(應(yīng)用程序編程接口)脖阵。 ??DOM 描繪...
    霜天曉閱讀 3,623評(píng)論 0 7
  • ??DOM 1 級(jí)主要定義的是 HTML 和 XML 文檔的底層結(jié)構(gòu)命黔。 ??DOM2 和 DOM3 級(jí)則在這個(gè)結(jié)構(gòu)...
    霜天曉閱讀 1,428評(píng)論 1 3
  • ??JavaScript 與 HTML 之間的交互是通過(guò)事件實(shí)現(xiàn)的。 ??事件蘑辑,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,477評(píng)論 1 11
  • 之前通過(guò)深入學(xué)習(xí)DOM的相關(guān)知識(shí)洋机,看了慕課網(wǎng)DOM探索之基礎(chǔ)詳解篇這個(gè)視頻(在最近看第三遍的時(shí)候,準(zhǔn)備記錄一點(diǎn)東西...
    微醺歲月閱讀 4,459評(píng)論 2 62
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5洋魂? 答:HTML5是最新的HTML標(biāo)準(zhǔn)绷旗。 注意:講述HT...
    kismetajun閱讀 27,450評(píng)論 1 45