前端基本功:JS必記知識點+案例(三)

判斷用戶輸入事件

正常瀏覽器 : oninput
Ie 678 支持的 : onpropertychange
案例:

淘寶案例.gif

<!DOCTYPE html>
<html><head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .search{
             width:300px;
             height:30px;
             margin:100px auto;
             position:relative;
       }
       .search input{
             width:200px;
             height:25px;
       }
       .search label{
             font-size: 12px;
             color:#ccc;
             position: absolute;
             top:8px;
             left:20px;
             cursor:text;
      }
    </style>
    <script>
         window.onload = function(){
               function $(id){return document.getElementById(id);}
               // oninput 大部分瀏覽器支持 檢測用戶表單輸入內(nèi)容
               //onpropertychange ie678 檢測用戶表單輸入內(nèi)容
              $("txt").oninput = $("txt").onprepertychange = function(){
                    if(this.value ==" ")
                    {
                        $("message").style.display ="block";
                    }
                    else
                   {
                       $("message").style.display ="none";
                   }
               }
          }
    </script>
<head>
</head>
<body>
<div class="search">
      <input type="text" id="txt"/>
      <label for="txt" id="message">必敗的國際大牌</label>  //當(dāng)我們點擊label 的時候 光標回到input里面。
</div>
</body>
</html>

數(shù)組array

數(shù)組: 就是一個大變量, 它里面可以存儲很多的值玻熙。

  • 聲明數(shù)組
var arr = [1,3,5,7,9];
   var arr = new Array(1,3,5);
  • 使用數(shù)組
    使用的方法: 數(shù)組名[索引值]; 函數(shù)名();
    索引號是從0開始的。 0 1 2 3 4 5 ...
var textArr = ["劉備","諸葛亮","趙云","關(guān)羽"];
console.log(textArr[3])

  • 數(shù)組的長度
    數(shù)組名.length;
console.log(textArr[i]);
  • 遍歷數(shù)組
for(var i= 0,len =textArr.length; i<len;i++

想到了for 遍歷 數(shù)組
getElementsByTagName() 得到一個偽數(shù)組

案例:隔行變色
x.gif

源碼 :

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title></title>
      <style>
        .box{
            width: 300px;
        } 
       li{
            line-height: 30px;
            list-style-type: none;
        }
        li span{
            margin: 5px;
        } 
       .current{
            background-color: #aaa!important;
                     } 
  </style>
   <script>
        window.onload = function(){
             var lis = document.getElementsByTagName("li");
            for(var i=0;i<lis.length;i++) 
           {
                if(i%2 ==0)
                {                     
 lis[i].style.backgroundColor = "#eee";
                }  
             else 
               {
                    lis[i].style.backgroundColor = "#ddd";
                } 
 lis[i].onmouseover = function(){ 
                   this.className ="current";
                }
 lis[i].onmouseout = function(){
                    this.className =""; 
               }
            } 
          /*  var lis = document.getElementsByTagName("li");  // 得到所有的li//alert(lis.length);
            for(var i = 0; i<lis.length; i++)
            {
                if(i%2 == 0)  // 只有偶數(shù)能被2整除
                {                    lis[i].style.backgroundColor = "#eee";                }
                //鼠標經(jīng)過li 的時候捏萍, 當(dāng)前的底色變亮
                lis[i].onmouseover = function(){                    this.className = "current";
                }
                lis[i].onmouseout = function(){                    this.className = ""; 
               }
            }*/
       }
    </script>
</head>
<body>
<div class="box">
    <ul>
        <li> <span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span> </li>
        <li><span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span> </li>       
        <li> <span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span> </li>
        <li> <span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span></li>       
        <li><span>上證指數(shù)</span> <span>3641</span><span>10-5</span><span>0.16%</span></li>        
        <li> <span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span></li>        
        <li><span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span> </li>        
        <li><span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span> </li>       
        <li><span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span></li>       
        <li><span>上證指數(shù)</span><span>3641</span><span>10-5</span><span>0.16%</span></li>
 </ul>
</div>
</body>
</html> 
       
數(shù)組求平均數(shù):
求平均數(shù)
<!DOCTYPE html>
<html lang="en">
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
     /*var arr =[1,2,3,4,5,6];
      var sum = 0;
      for(var i = 0,leg =arr.length;i<leg;i++){
           sum = sum +arr[i];
      }
      console.log(sum/arr.length)*/
      var arr = [10,20,30,34,67];
      function avg(array){   //封裝求平均值函數(shù)
            var len = array.length;  //數(shù)組的長度
            var sum = 0;
            for(var i=0;i<len; i++)
            {
                  sum  +=array[i];   // sum = sum + array[i];
            }
            return sum/len;
       }
       //a*=3  a= a*3
       console.log(avg(arr));
</script>
</body>
</html>

字符相連

數(shù)值相加 字符相連
1+1 = 2;
“你好” + “嗎” “你好嗎”
“你好” + 2 “你好2”

“0” + 10 “010”
10 - “2” 8
所有的input 取過來的值 是 字符型朋魔。

三元運算符 三目運算符

一元: a++ b++ +a -a
二元: a+b a>=b
三元: 表達式 ? 結(jié)果1 : 結(jié)果2 等價于 if else
如果表達式結(jié)果為真 , 則返回 結(jié)果1
如果表達式結(jié)果為假铣卡, 則返回結(jié)果2
if(3>5) {alert(“11”)} else { alert(22)} ==
3>5 ? alert(11) : alert(22)

排他思想☆☆☆☆☆

排他思想:
首先干掉所有人, 剩下我自己偏竟、
案例:


排他并相應(yīng)指示.gif
<!DOCTYPE html>
<html lang="en">
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .damao{
              background-color:pink;
              }
    </style>
    <script>
        window.onload = function(){
               var btns = document.getElementsByTagName("button");
               for(var i=0;i<btns.length;i++)
               {
                  btns[i].index=i; //給每 個button定義了一個index屬性 索引號
                  btns[i].onclick = function(){
                        //清除所有人的 類名  只能用for遍歷
                        alert(this.index);
                        for(var j=0;j<btns.length;j++)
                        {
                           btns[j].className = " "; 
                        }
                       //就剩下自己 就是一個 而且是點擊那個
                       this.className = "damao";
                     }
                 }
          }
    </script>
</head>
<body>
<button>思想原理</button>
<button>思想原理</button>
<button>思想原理</button>
<button>思想原理</button>
<button>思想原理</button>
<button>思想原理</button>

</body>
</html>

變量 和屬性

變量

是獨立存在的 自由自在的

屬性和方法

屬于某個對象的 屬性和 方法

例如:

<script>
  var index =10; //變量 誰都可以使用
  var arr = [ ]; //數(shù)組
  arr.index = 20; //自定義屬性 它只能在arr 才能使用
</script>
面試持舐洌考點TAB切換案例:
TAB切換案例.gif

源碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box{
              width:400px;
              margin:100px auto;
              border:1px solid #ccc;
         }
        .bottom div{
             width:100%;
             height: 300px;
             background-color: pink;
             display:none;
         }
         .purple{
               background-color: purple;
          }
          .bottom .show{
                display:block;
          }  
    </style>
    <script>
         window.onload = function(){
                var btns = document.getElementsByTagName("button");
                var divs = document.getElementById("divs").getElementsByTagName("div");
                 for(var i= 0;i<btns.length;i++)
                {
                   btns[i].index = i;  // 難點
                   btns[i].onclick = function(){
                  //讓所有的 btn 類名清空
                  //alert(this.index);
                  for(var j=0;j<btns.length;j++)
                 {
                   btns[j].className =" ";                  
                  }
                  //當(dāng)前的那個按鈕 的添加 類名
                   this.className ="purple";
                 //先隱藏下面所有的 div盒子
                  for(var i=0;i<divs.length;i++)
                  {
                        divs[i].style.display="none";
                  }
                 //留下中意的那個 跟點擊的序號有關(guān)系的
                        divs[this.index].style.display ="block";
                 }
             }
        }
    </script>
</head>
<body>
<div class="box">
     <div class="top">
            <button>第一個</button>
            <button>第二個</button>
            <button>第三個</button>
            <button>第四個</button>
            <button>第五個</button>
        </div>
        <div class="bottom" id="divs">
              <div style="display:block;">1好盒子</div>
              <div>2好盒子</div>
              <div>3好盒子</div>
              <div>4好盒子</div>
              <div>5好盒子</div>
        </div>
</div>
</body>
</html>

進一步精簡源碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box{
              width:400px;
              margin:100px auto;
              border:1px solid #ccc;
         }
        .bottom div{
             width:100%;
             height: 300px;
             background-color: pink;
             display:none;
         }
         .purple{
               background-color: purple;
          }
          .bottom .show{
                display:block;
          }  
    </style>
    <script>
         window.onload = function(){
                var btns = document.getElementsByTagName("button");
                var divs = document.getElementById("divs").getElementsByTagName("div");
                 for(var i= 0;i<btns.length;i++)
                {
                   btns[i].index = i;  // 難點
                   btns[i].onclick = function(){
                  //讓所有的 btn 類名清空
                  //alert(this.index);
                  for(var j=0;j<btns.length;j++)
                 {
                   btns[j].className =" ";
                   divs[j].className =" ";
                  }
                  //當(dāng)前的那個按鈕 的添加 類名
                   this.className ="purple";
                 //先隱藏下面所有的 div盒子
                 //留下中意的那個 跟點擊的序號有關(guān)系的
                   divs[this.index].className = "show";
                 }
             }
        }
    </script>
</head>
<body>
<div class="box">
     <div class="top">
            <button>第一個</button>
            <button>第二個</button>
            <button>第三個</button>
            <button>第四個</button>
            <button>第五個</button>
        </div>
        <div class="bottom" id="divs">
              <div class ="show">1好盒子</div>
              <div>2好盒子</div>
              <div>3好盒子</div>
              <div>4好盒子</div>
              <div>5好盒子</div>
        </div>
</div>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市踊谋,隨后出現(xiàn)的幾起案子蝉仇,更是在濱河造成了極大的恐慌,老刑警劉巖殖蚕,帶你破解...
    沈念sama閱讀 210,835評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轿衔,死亡現(xiàn)場離奇詭異,居然都是意外死亡睦疫,警方通過查閱死者的電腦和手機害驹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛤育,“玉大人宛官,你說我怎么就攤上這事葫松。” “怎么了底洗?”我有些...
    開封第一講書人閱讀 156,481評論 0 345
  • 文/不壞的土叔 我叫張陵腋么,是天一觀的道長。 經(jīng)常有香客問我亥揖,道長珊擂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,303評論 1 282
  • 正文 為了忘掉前任费变,我火速辦了婚禮摧扇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胡控。我一直安慰自己扳剿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,375評論 5 384
  • 文/花漫 我一把揭開白布昼激。 她就那樣靜靜地躺著庇绽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪橙困。 梳的紋絲不亂的頭發(fā)上瞧掺,一...
    開封第一講書人閱讀 49,729評論 1 289
  • 那天,我揣著相機與錄音凡傅,去河邊找鬼辟狈。 笑死,一個胖子當(dāng)著我的面吹牛夏跷,可吹牛的內(nèi)容都是我干的哼转。 我是一名探鬼主播,決...
    沈念sama閱讀 38,877評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼槽华,長吁一口氣:“原來是場噩夢啊……” “哼壹蔓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起猫态,我...
    開封第一講書人閱讀 37,633評論 0 266
  • 序言:老撾萬榮一對情侶失蹤佣蓉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后亲雪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勇凭,經(jīng)...
    沈念sama閱讀 44,088評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,443評論 2 326
  • 正文 我和宋清朗相戀三年义辕,在試婚紗的時候發(fā)現(xiàn)自己被綠了虾标。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,563評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡灌砖,死狀恐怖璧函,靈堂內(nèi)的尸體忽然破棺而出贞让,到底是詐尸還是另有隱情,我是刑警寧澤柳譬,帶...
    沈念sama閱讀 34,251評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站续镇,受9級特大地震影響美澳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摸航,卻給世界環(huán)境...
    茶點故事閱讀 39,827評論 3 312
  • 文/蒙蒙 一制跟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酱虎,春花似錦雨膨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恢暖,卻和暖如春排监,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杰捂。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評論 1 264
  • 我被黑心中介騙來泰國打工舆床, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嫁佳。 一個月前我還...
    沈念sama閱讀 46,240評論 2 360
  • 正文 我出身青樓挨队,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蒿往。 傳聞我的和親對象是個殘疾皇子盛垦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,435評論 2 348

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