2019-04-16 數(shù)組(splice)晴叨、數(shù)組去重、練習(xí)-省市聯(lián)動(dòng)(數(shù)組方法)矾屯、練習(xí)-省市聯(lián)動(dòng)(json方法)兼蕊、DOM(節(jié)點(diǎn))、onreset件蚕、onsubmit孙技、焦點(diǎn)、排作、確認(rèn)框牵啦、BOM、全選纽绍、...

數(shù)組

清空數(shù)組
arr=[];
arr.length=0
添加數(shù)組
arr.push(10);//在數(shù)組最后添加
arr.unshift(13,12);//在數(shù)組最前添加
arr.shift();//從開(kāi)頭刪 會(huì)返回刪除元素的值
arr.pop();//從最后刪 會(huì)返回刪除元素的值

splice
 刪除
1. 第一個(gè)參數(shù)表示index,第二個(gè)參數(shù)表示長(zhǎng)度   arr.splice(2,1);
2.替換     arr.splice(2,1,'e')
 3.增加    arr.splice(2,0,'e');

數(shù)組去重

var arr=[1,2,1,3,4,5,6,7,8,1,2,5,8,7,4];
for(var i=0;i<arr.length-1;i++){
    for(var j=i+1;j<arr.length;j++){
        if(arr[i]==arr[j]){
            // 刪除后面重復(fù)的
//          arr.splice(j,1);
//          j--;
            //  刪除前面重復(fù)的
            arr.splice(i,1);
            j=i;
                }
            }
        }

二維數(shù)組

var arr=[
          [1,2,3],
          [4,5,6],
          [7,8,9]
        ]

練習(xí)-省市聯(lián)動(dòng)(數(shù)組方法)

<body>
        <select name="" id="province">
            <option value="">省份</option>
        </select>
        
        <select name="" id="city">
            <option value="">城市</option>
        </select>
        <script type="text/javascript">
            var json = {
                '遼寧':['沈陽(yáng)','大連','阜新','朝陽(yáng)','營(yíng)口','葫蘆島','錦州','盤(pán)錦'],
                '河北':['石家莊','天津','廊坊','承德'],
                '湖北':['武漢','襄陽(yáng)','宜昌','黃石','十堰']
            }
            var oPro = document.getElementById('province');
            var oCity = document.getElementById('city');
            
            // 初始化省份下拉框
            for(attr in json){
                oPro.innerHTML += '<option value="'+attr+'">'+attr+'</option>';
            }
            oPro.onchange = function(){
                // 清空城市列表
                oCity.innerHTML = '<option value="">城市</option>';
                // 獲取省份的value
                var proValue = oPro.value;
                for(attr in json){
                    if(attr == proValue){
                        for(j in json[attr]){
                            oCity.innerHTML += '<option value="'+json[attr][j]+'">'+json[attr][j]+'</option>';
                        }
                    }
                }
            }
        </script>
    </body>

練習(xí)-省市聯(lián)動(dòng)(json方法)

json  有鍵值對(duì)類(lèi)似于集合
<body>
        <select name="" id="province">
            <option value="">省份</option>
        </select>
        
        <select name="" id="city">
            <option value="">城市</option>
        </select>
        <script type="text/javascript">
            var json = {
                '遼寧':['沈陽(yáng)','大連','阜新','朝陽(yáng)','營(yíng)口','葫蘆島','錦州','盤(pán)錦'],
                '河北':['石家莊','天津','廊坊','承德'],
                '湖北':['武漢','襄陽(yáng)','宜昌','黃石','十堰']
            };
            var oPro = document.getElementById('province');
            var oCity = document.getElementById('city');
            
            // 初始化省份下拉框
            for(attr in json){
                oPro.innerHTML += '<option value="'+attr+'">'+attr+'</option>';
            }
            oPro.onchange = function(){
                // 清空城市列表
                oCity.innerHTML = '<option value="">城市</option>';
                // 獲取省份的value
                var proValue = oPro.value;
                for(attr in json){
                    if(attr == proValue){
                        for(j in json[attr]){
                            oCity.innerHTML += '<option value="'+json[attr][j]+'">'+json[attr][j]+'</option>';
                        }
                    }
                }
            }
        </script>
    </body>

DOM(節(jié)點(diǎn))


    DOM : document object model 文檔對(duì)象模型
    它提供了許多獲取DOM節(jié)點(diǎn)的方法
    document.getElementById()
    document.getElementsByTagName()
    document.getElementsByClassName()
    document.getElementsByName()
    ....
    DOM操作 -- 節(jié)點(diǎn)操作
children 子節(jié)點(diǎn)
parentNode  他會(huì)找到它本身的父節(jié)點(diǎn)
offsetParent 他會(huì)找到它本身的有定位父節(jié)點(diǎn)
offsetLeft,offsetTop:當(dāng)前元素到定位父級(jí)的距離

父節(jié)點(diǎn)小練習(xí)

    <body>
        <ul>
            <li>張三111 <a href="javascript:;">刪除</a></li>
            <li>張三222 <a href="javascript:;">刪除</a></li>
            <li>張三333 <a href="javascript:;">刪除</a></li>
            <li>張三444 <a href="javascript:;">刪除</a></li>
            <li>張三555 <a href="javascript:;">刪除</a></li>
            <li>張三666 <a href="javascript:;">刪除</a></li>
            <li>張三777 <a href="javascript:;">刪除</a></li>
            <li>張三888 <a href="javascript:;">刪除</a></li>
        </ul>
        <script type="text/javascript">
            var aA = document.getElementsByTagName('a');
            for(i in aA){
                aA[i].onclick = function(){
                    this.parentNode.style.display = 'none';
                }
            }
        </script>
    </body>

onreset猎莲、onsubmit

onreset      重置事件
onsubmit    提交事件

焦點(diǎn)

獲取焦點(diǎn)
事件
oInp.onfocus = function(){
    this.value = '';
}
自動(dòng)獲取焦點(diǎn)函數(shù)
 oInp.focus();

失去焦點(diǎn)
事件
oInp.onblur = function(){
    this.value = '123';
}
函數(shù)
 oInp.blur();

確認(rèn)框

confirm(1);//彈出后會(huì)有 確定跟取消,會(huì)根據(jù)選項(xiàng)返回true跟false

小練習(xí)-確認(rèn)是否提交表單
    <body>
        <form id="form" action="http://www.baidu.com">
            <input type="text" name="username" value="張三">
            <input type="password" name="password" value="123456">
            <button>提交</button>
        </form>
        <script type="text/javascript">
            var oForm = document.getElementById('form');
            oForm.onsubmit = function(){
                var bool = confirm('是否確認(rèn)修改信息?');
                if(!bool){
                    return false;
                }
            }
            document.oncontextmenu = function(){
                return false;
            }
        </script>
    </body>

BOM

<!-- 
    BOM browser object model   瀏覽器
    關(guān)閉窗口
    打開(kāi)窗口
    跳轉(zhuǎn)頁(yè)面
    window
 -->
 <script type="text/javascript">
document.getElementsByTagName('input')[0].onclick=function(){
    // window.open('http://www.baidu.com',"_self");
        //有兼容問(wèn)題 _self在當(dāng)前窗口打開(kāi)
    window.location.;
            }
</script>

全選椎瘟、eval()函數(shù)

select()全選函數(shù)
 eval(str) 將字符串運(yùn)算出結(jié)果,前提:字符串必須表達(dá)式

event

event 會(huì)記錄頁(yè)面的變化
event 瀏覽器兼容寫(xiě)法
document.onclick=function(ev){
    var ev=ev || event;
    for(attr in ev){
    console.log(attr +"," + ev[attr]);  
     }
}

跟隨鼠標(biāo)移動(dòng)

        <style type="text/css">
            #box{
                width: 100px;
                height: 100px;
                background: red;
                position: absolute;
                left: 8px;
                top: 8px;
            }
        </style>
    </head>
    <body style="width: 2000px; height: 2000px;">
        <div id="box">
            
        </div>
        <script type="text/javascript">
            var oBox=document.getElementById('box');
            // onscroll 鼠標(biāo)滾動(dòng)
            document.onscroll=function(){
                alert(1);
            }
            
            document.onmousemove=function(ev){
                var ev= ev || event;
                // y軸的滾動(dòng)距離
                var scrollTop=document.documentElement.scrollTop;
                // x軸的滾動(dòng)距離
                var scrollLeft=document.documentElement.scrollLeft;
//              console.log('x:'+ev.clientX);
//              console.log('Y:'+ev.clientY);
                oBox.style.left=ev.clientX+scrollLeft+'px';
                oBox.style.top=ev.clientY+scrollTop+'px';
            }
        </script>
    </body>

鼠標(biāo)拖拽

        <style type="text/css">
            #box{
                width: 100px;
                height: 100px;
                background: #000000;
                position: absolute;
                left: 10px;
                top: 10px;
                cursor: pointer;
            }
        </style>
    </head>
    <body style="width: 1000px; height: 1000px;">
        <div id="box" >
            
        </div>
        <script type="text/javascript">
            var oBox=document.getElementById('box');
            
            oBox.onmousedown=function(ve){
                var ev= ev || event;
                // 獲取鼠標(biāo)距離div邊框的值
//              var oX=ev.clientX-this.offsetLeft;
//              var oY=ev.clientY-this.offsetTop;
                var oX=ev.clientX-parseInt(getComputedStyle(oBox).left);
                var oY=ev.clientY-parseInt(getComputedStyle(oBox).top);
                document.onmousemove=function(ve){
                    var ev= ev || event;
                    oBox.style.left=(ev.clientX-oX)+'px';
                    oBox.style.top=(ev.clientY-oY)+'px';
                }
            }
            document.onmouseup=function(){
                document.onmousemove=function(ve){
                    return ;
                }
            }
        </script>
    </body>

事件冒泡

<style>
    #box{
        width: 100px;
        height: 100px;
        background: red;
        display: none;
        }
</style>
</head>
<body>
    <p><button type="button">按鈕</button></p>
    <div id="box"></div>
    <script type="text/javascript">
        document.getElementsByTagName('button')[0].onclick = function(ev){
            var ev = ev || event;
            document.getElementById('box').style.display = 'block';
            ev.stopPropagation(); // 阻止事件冒泡
            }
            
//      document.getElementsByTagName('p')[0].onclick = function(){
//          alert(1);
//      }
        /*
            事件冒泡:
                所有的事件都具有穿透性,向父級(jí)穿透直到document -- 事件冒泡
        */
        document.onclick = function(){
            document.getElementById('box').style.display = 'none';
        }
    </script>
</body>

事件冒泡-廣告

<style type="text/css">
            #box{
                width: 100px;
                height: 250px;
                background: #0000FF;
                position: absolute;
                left:-100px;
                top: 200px;
            }
            #adver{
                width: 16px;
                height: 50px;
                background: red;
                position: absolute;
                right: -16px;
                top: 60px;
            }
        </style>
    </head>
    <body>
        <div id="box">
            <div id="adver">
                教程
            </div>
        </div>
        <script type="text/javascript">
            document.getElementById('box').onmouseover=function(){
                this.style.left='0px';
            }
            document.getElementById('box').onmouseout=function(){
                this.style.left='-100px';
            }
        </script>
    </body>

鍵盤(pán)事件

// onkeydown 鍵盤(pán)按下
// onkeyup 鍵盤(pán)抬起
// ev.keyCode 會(huì)返回鍵盤(pán)碼
// ctrlKey 鍵盤(pán)Ctrl按下后ctrlKey會(huì)返回true
獲取鍵盤(pán)事件
document.onkeydown=function(ev){
    var ev=ev||event;
    alert(ev.keyCode);  //ev.keyCode 獲取鍵盤(pán)碼
}

鍵盤(pán)控制div移動(dòng)

        <style type="text/css">
            #box{
                width: 100px;
                height: 100px;
                background: #0D5B95;
                position: absolute;
                left:8px;
                top:8px;
            }
        </style>
    </head>
    <body>
        <div id="box"></div>
        <script type="text/javascript">
            var oDiv = document.getElementById('box');
            // document.onkeydown = function(ev){
//              var ev = ev || event;
//              if(ev.keyCode == 37){
//                  oBox.style.left = parseInt(getComputedStyle(oBox).left) - 10 + 'px';
//              }
//              if(ev.keyCode == 38){
//                  oBox.style.top = parseInt(getComputedStyle(oBox).top) - 10 + 'px';
//              }
//              if(ev.keyCode == 39){
//                  oBox.style.left = parseInt(getComputedStyle(oBox).left) + 10 + 'px';
//              }
//              if(ev.keyCode == 40){
//                  oBox.style.top = parseInt(getComputedStyle(oBox).top) + 10 + 'px';
//              }
            // }
            
            
            
            var dir = {left:null,top:null,right:null,bottom:null};
            setInterval(function () {
                if(dir.left){
                    oDiv.style.left = oDiv.offsetLeft - 10 +'px';
                }
                if(dir.top){
                    oDiv.style.top = oDiv.offsetTop  - 10 +'px';
                }
                if(dir.right){
                    oDiv.style.left = oDiv.offsetLeft + 10 +'px';
                }
                if(dir.bottom){
                    oDiv.style.top = oDiv.offsetTop + 10 +'px';
                }
            },30);
            document.onkeydown = function (ev) {
                var ev = ev || event;
                switch(ev.keyCode){
                    //左37,上38,右39,下40
                    case 37:
                        dir.left = true;
                        break;
                    case 38:
                        dir.top = true;
                        break;
                    case 39:
                        dir.right = true;
                        break;
                    case 40:
                        dir.bottom = true;
                        break;
                }
            }
            document.onkeyup = function (ev) {
                var ev = ev || event;
                switch(ev.keyCode){
                    //左37,上38,右39,下40
                    case 37:
                        dir.left = false;
                        break;
                    case 38:
                        dir.top = false;
                        break;
                    case 39:
                        dir.right = false;
                        break;
                    case 40:
                        dir.bottom = false;
                        break;
                }
            }
        </script>
    </body>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市梧喷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌还惠,老刑警劉巖蟹腾,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異站故,居然都是意外死亡皆怕,警方通過(guò)查閱死者的電腦和手機(jī)毅舆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)愈腾,“玉大人憋活,你說(shuō)我怎么就攤上這事∈疲” “怎么了悦即?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)橱乱。 經(jīng)常有香客問(wèn)我辜梳,道長(zhǎng),這世上最難降的妖魔是什么泳叠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任作瞄,我火速辦了婚禮,結(jié)果婚禮上危纫,老公的妹妹穿的比我還像新娘宗挥。我一直安慰自己,他們只是感情好叶摄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布属韧。 她就那樣靜靜地躺著,像睡著了一般蛤吓。 火紅的嫁衣襯著肌膚如雪宵喂。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天会傲,我揣著相機(jī)與錄音锅棕,去河邊找鬼。 笑死淌山,一個(gè)胖子當(dāng)著我的面吹牛裸燎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泼疑,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼德绿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了退渗?” 一聲冷哼從身側(cè)響起移稳,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎会油,沒(méi)想到半個(gè)月后个粱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翻翩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年都许,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稻薇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胶征,死狀恐怖塞椎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情睛低,我是刑警寧澤忱屑,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站暇昂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伴嗡。R本人自食惡果不足惜急波,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘪校。 院中可真熱鬧澄暮,春花似錦、人聲如沸阱扬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)麻惶。三九已至馍刮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窃蹋,已是汗流浹背卡啰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留警没,地道東北人匈辱。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像杀迹,于是被迫代替她去往敵國(guó)和親亡脸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • ??JavaScript 與 HTML 之間的交互是通過(guò)事件實(shí)現(xiàn)的。 ??事件嗅回,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,493評(píng)論 1 11
  • 第3章 基本概念 3.1 語(yǔ)法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類(lèi)型 5種簡(jiǎn)單數(shù)據(jù)類(lèi)型:Unde...
    RickCole閱讀 5,128評(píng)論 0 21
  • [TOC] 課程內(nèi)容回顧 什么是JavaScript及穗,有幾個(gè)部分組成腳本語(yǔ)言,瀏覽器绵载,ECMAScript BO...
    chcvn閱讀 500評(píng)論 0 0
  • js javascript腳本語(yǔ)言解釋性基于對(duì)象事件驅(qū)動(dòng)函數(shù) js的組成: ECMAScript(語(yǔ)法) ...
    ROC_XU的日記本閱讀 205評(píng)論 0 0
  • DOM操作一 HTML DOM是HTML Document Object Model(文檔對(duì)象模型)的縮寫(xiě)HTML...
    Viarotel閱讀 577評(píng)論 0 0