web前端入門到實(shí)戰(zhàn):JS-DOM事件

JS DOM****設(shè)置元素屬性

設(shè)置id為box的這個元素的文字顏色,屬性是減號連接的復(fù)合形式時

必需要轉(zhuǎn)換為駝峰形式

       var box=document.getElementById("box");
       box.style.color='#f00';
       box.style.fontWeight="bold"; var lis=document.getElementById("list").getElementsByTagName("li"); // 遍歷每一個li
       for(var i=0,len=lis.length;i<len;i++){
          lis[i].style.color='#00f'; if(i==0){
             lis[i].style.backgroundColor="#ccc";
          }else if(i==1){
             lis[i].style.backgroundColor="#666";
          }else if(i==2){
             lis[i].style.backgroundColor="#999";
          }else{
               lis[i].style.backgroundColor="#333";
          }
       }

innerHTML獲取和設(shè)置標(biāo)簽之間的文本和html內(nèi)容

className重新設(shè)置類马胧,會替換掉原來的類

如果元素有多個class屬性值,那么會全部獲取到

       var lis=document.getElementById("list").getElementsByTagName("li"); for(var i=0,len=lis.length;i<len;i++){
           console.log(lis[i].innerHTML);
           lis[i].innerHTML+='程序';
           lis[1].className="current";
       }
       console.log(document.getElementById("box").className);
專門建立的學(xué)習(xí)Q-q-u-n: 784783012 顶滩,分享學(xué)習(xí)的方法和需要注意的小細(xì)節(jié),不停更新最新的教程和學(xué)習(xí)技巧
(從零基礎(chǔ)開始到前端項(xiàng)目實(shí)戰(zhàn)教程碱屁,學(xué)習(xí)工具葛账,全棧開發(fā)學(xué)習(xí)路線以及規(guī)劃)

屬性設(shè)置與獲取

        var p=document.getElementById("text"); var user=document.getElementById("user");  // null
        console.log(p.getAttribute("class"));  //p.className
        console.log(user.getAttribute("validate")); // 給p設(shè)置一個data-color的屬性
        p.setAttribute("data-color","red"); // 給input設(shè)置一個isRead的屬性
        user.setAttribute("isRead","false"); // 刪除p上的align屬性
        p.removeAttribute("align");

JS****事件:

鼠標(biāo)事件

onload 頁面加載

onclick 鼠標(biāo)點(diǎn)擊

onmouseover 鼠標(biāo)劃入

onmouseout 鼠標(biāo)離開

onmousemove 鼠標(biāo)在目標(biāo)內(nèi)移動

onfocus 獲得焦點(diǎn)

onblur 失去焦點(diǎn)

onchange 內(nèi)容改變時


在事件觸發(fā)函數(shù)中婚惫,this是指對該DOM元素的引用

    <input type="button" value="彈 出" onclick="alert('我是按鈕')">
    <!--鼠標(biāo)劃過按鈕時調(diào)用mouseoverFn的函數(shù)-->
    <div class="btn" onmouseover="mouseoverFn(this,'#f00')" onmouseout="mouseoutFn(this,'#ff0')">開始</div>
    <div class="btn" onmouseover="mouseoverFn(this,'#0f0')" onmouseout="mouseoutFn(this,'#333')">結(jié)束</div>
    <script>
        function mouseoverFn(btn,bgColor){ // 鼠標(biāo)劃過按鈕時,按鈕的背景變?yōu)榧t色
            btn.style.background=bgColor;
        } function mouseoutFn(btn,bgColor){
            btn.style.background=bgColor;
        }

DOM 0級

通過DOM獲取元素

元素.事件=腳本

執(zhí)行腳本可以是一個匿名函數(shù)筷登,也可以直接調(diào)用函數(shù)剃根,如果調(diào)用函數(shù),語法是:ele.事件=函數(shù)名前方,不加括號

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style> .lock{width:140px;height:30px;line-height: 30px;background:#00f;
           color:#fff;font-size:14px;text-align:center;border-radius:5px;
           cursor:pointer;margin-top:30px;}
           .unlock{width:140px;height:30px;line-height: 30px;background:#666;
               color:#ccc;font-size:14px;text-align:center;border-radius:5px;
               cursor:pointer;margin-top:30px;} </style>
</head>
<body>
    <div class="lock" id="btn">鎖定</div>
    <script>
        // 獲取按鈕
        var btn=document.getElementById("btn"); function clickBtn(){
           alert("我是按鈕");
        } // 點(diǎn)擊按鈕調(diào)用clickBtn這個函數(shù)
        btn.onclick=clickBtn; // 給按鈕綁定事件,this是對該DOM元素的引用
        btn.onclick=function(){ // 判斷如果按鈕是鎖定狈醉,則顯示為解鎖,變?yōu)榛疑菹眨駝t顯示為鎖定苗傅,變?yōu)樗{(lán)色
           if(this.className=="lock"){ this.className="unlock"; this.innerHTML="解鎖";
           }else{ this.className="lock"; this.innerHTML="鎖定";
           }
        } </script>
</body>
</html>
專門建立的學(xué)習(xí)Q-q-u-n: 784783012 ,分享學(xué)習(xí)的方法和需要注意的小細(xì)節(jié)班巩,不停更新最新的教程和學(xué)習(xí)技巧
(從零基礎(chǔ)開始到前端項(xiàng)目實(shí)戰(zhàn)教程渣慕,學(xué)習(xí)工具,全棧開發(fā)學(xué)習(xí)路線以及規(guī)劃)

window.onload會在網(wǎng)頁中的所有元素(文本抱慌、圖像逊桦、CSS樣式等)加載完后才觸發(fā)執(zhí)行

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
    // 頁面加載時執(zhí)行,unload頁面卸載
       // 如果不加window.onload抑进,那么執(zhí)行腳本時會找不到div元素
       window.onload=function(){ // 獲取box
            var box=document.getElementById("box"); var clicked=function(){
                  alert('我被點(diǎn)擊了');
            }
            box.onclick=clicked;
       } </script>
</head>
<body>
    <div id="box">這是一個DIV</div>
</body>
</html>

change事件,一般作用域select或checkbox或radio

menu.selectedIndex 獲取select中被選中的元素的下標(biāo)

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
       // 頁面加載
       window.onload=init; // 初始化
       function init(){ // 獲取下拉菜單
          var menu=document.getElementById("menu"); // 給菜單綁定change事件,一般作用域select或checkbox或radio
          menu.onchange=function(){ // 獲取當(dāng)前選中的值
             //var bgcolor=this.value;
             var bgcolor=menu.options[menu.selectedIndex].value; // 如果bgcolor為空强经,則下面的腳本將不執(zhí)行
             // if(bgcolor=="")return;
             // 設(shè)置body的背景色
             // 如果bgcolor為空,則將背景色設(shè)為白色寺渗,否則是選擇的顏色
             if(bgcolor==""){
                document.body.style.background="#fff";
             }else{
                 document.body.style.background=bgcolor;
             }
          }
       } </script>
</head>
<body>
    <div class="box"> 請選擇您喜歡的背景色: <select name="" id="menu">
            <option value="">請選擇</option>
            <option value="#f00">紅色</option>
            <option value="#0f0">綠色</option>
            <option value="#00f">藍(lán)色</option>
            <option value="#ff0">黃色</option>
            <option value="#ccc">灰色</option>
        </select>
    </div>
</body>
</html>

鼠標(biāo)事件:

onsubmit 表單提交

onmousedown 鼠標(biāo)按下

onmousemove 鼠標(biāo)移動

onmouseup 鼠標(biāo)松開

onresize 瀏覽器窗口大小調(diào)整

onscroll 拖動滾動條

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style> body{height:2000px;}
       .box{width:200px;height:200px;background:#f00;overflow:auto;} </style>
</head>
<body>
    <div class="box" id="box">
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
        <p>拖動</p>
    </div>
    <script>
       var box=document.getElementById("box"); // 綁定按下的事件
       box.onmousedown=function(){
             console.log("我被按下了");
       } // 綁定移動的事件
       box.onmousemove=function(){
             console.log("我被移動了");
       } // 綁定松開的事件
       box.onmouseup=function(){
             console.log("我被松開了");
       } // 綁定點(diǎn)擊的事件
       box.onclick=function(){
             console.log("我被點(diǎn)擊了");
       } // 瀏覽器窗口尺寸發(fā)生改變時
       window.onresize=function(){
             console.log("我的尺寸被改變了");
       } // 拖動滾動條
       window.onscroll=function(){
             console.log("我被拖動了");
       }
       box.onscroll=function(){
             console.log("我是DIV的滾動條");
       } </script>
</body>
</html>
專門建立的學(xué)習(xí)Q-q-u-n: 784783012 匿情,分享學(xué)習(xí)的方法和需要注意的小細(xì)節(jié)兰迫,不停更新最新的教程和學(xué)習(xí)技巧
(從零基礎(chǔ)開始到前端項(xiàng)目實(shí)戰(zhàn)教程,學(xué)習(xí)工具码秉,全棧開發(fā)學(xué)習(xí)路線以及規(guī)劃)

鍵盤事件:

onkeydown 按下鍵盤

onkeypress按下鍵盤(只有字母和數(shù)字符號)

onkeyup 松開鍵盤

keyCode 返回鍵碼或者字符代碼

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style> .text span{font-weight:bold;color:#f00;}
       em{font-style:normal;}
       b{font-weight:normal;} </style>
</head>
<body>
    <div>
        <p class="text">
            <b id="showcount">您還可以輸入</b>
            <span id="totalbox"><em id="count">30</em>/30</span>
        </p>
        <div class="input">
            <textarea name="" id="text" cols="70" rows="4"></textarea>
        </div>
    </div>
    <script>
       // 獲取文本框及其他元素
       var text=document.getElementById("text"); var total=30; var count=document.getElementById("count"); var showcount=document.getElementById("showcount"); var totalbox=document.getElementById("totalbox"); // 綁定鍵盤事件
       document.onkeyup=function(){ // 獲取文本框值的長度
             var len=text.value.length; // 計(jì)算可輸入的剩余字符
             var allow=total-len; var overflow=len-total; // 如果allow小于0
             if(allow<0){
              showcount.innerHTML="您已超出"+overflow;
              totalbox.innerHTML='';
             }else{
                   showcount.innerHTML='您還可以輸入';
                   totalbox.innerHTML='<em id="count">'+allow+'</em>/30';
             }
       } </script>
</body>
</html>
專門建立的學(xué)習(xí)Q-q-u-n: 784783012 ,分享學(xué)習(xí)的方法和需要注意的小細(xì)節(jié)鸡号,不停更新最新的教程和學(xué)習(xí)技巧
(從零基礎(chǔ)開始到前端項(xiàng)目實(shí)戰(zhàn)教程转砖,學(xué)習(xí)工具,全棧開發(fā)學(xué)習(xí)路線以及規(guī)劃)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲸伴,一起剝皮案震驚了整個濱河市府蔗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汞窗,老刑警劉巖姓赤,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仲吏,居然都是意外死亡不铆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門裹唆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來誓斥,“玉大人,你說我怎么就攤上這事许帐±涂樱” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵成畦,是天一觀的道長距芬。 經(jīng)常有香客問我,道長循帐,這世上最難降的妖魔是什么框仔? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拄养,結(jié)果婚禮上存和,老公的妹妹穿的比我還像新娘。我一直安慰自己衷旅,他們只是感情好捐腿,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柿顶,像睡著了一般茄袖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘁锯,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天宪祥,我揣著相機(jī)與錄音聂薪,去河邊找鬼。 笑死蝗羊,一個胖子當(dāng)著我的面吹牛藏澳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耀找,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼翔悠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了野芒?” 一聲冷哼從身側(cè)響起蓄愁,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狞悲,沒想到半個月后撮抓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摇锋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年丹拯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荸恕。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡咽笼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出戚炫,到底是詐尸還是另有隱情剑刑,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布双肤,位于F島的核電站施掏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茅糜。R本人自食惡果不足惜七芭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔑赘。 院中可真熱鬧狸驳,春花似錦、人聲如沸缩赛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酥馍。三九已至辩昆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旨袒,已是汗流浹背汁针。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工术辐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人施无。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓辉词,卻偏偏與公主長得像,于是被迫代替她去往敵國和親猾骡。 傳聞我的和親對象是個殘疾皇子瑞躺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

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

  • (萬尚學(xué)習(xí)會) 打卡第48天 姓名:魯瑤麗 部門:業(yè)務(wù)部 組別:利他一組 【知~學(xué)習(xí)】 活法: 天堂地獄之分由心態(tài)...
    AliceWellin閱讀 165評論 0 0
  • 0.文章 用王者榮耀分析<策略模式> 觀察者模式很好理解,我通過微信公眾號這個簡單的栗子來代入一下卓练。微信公眾號大家...
    做夢枯島醒閱讀 839評論 0 0
  • 文/心語綠葉 其實(shí)不管什么工作都不輕松隘蝎,看個人定位標(biāo)準(zhǔn)不同而已购啄。 每一個行業(yè)襟企,每一份工作,認(rèn)真挖掘狮含,都可能成為你今...
    心語綠葉閱讀 496評論 0 1