javascript与css、html配合的高级使用

javascript与css、html配合的高级使用

网页的主体是由html构成,因此要用javascript实现与用户的交互,就要获取到目标标签

获取标签元素并操作标签元素

  • 获取标签元素

    可以使用内置对象 document 上的 getElementById 方法来获取页面上设置了id属性的标签元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            var div1 = document.getElementById("div1")
            alert(div1)
        </script>
    </head>
    <body>
        <div id="div1">这是一个要被获取的标签</div>
    </body>
    </html>
    

    这段代码,弹出的窗口会显示一个null,那是因为script的语句在定义这个div这个标签之前,他会先执行,所以document.getElementById("div1")会找不到这个div1的,因此会打印出null。

    • 解决方法一:将javascript的语句放在定义div标签之后,如下:

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Document</title>
      
      </head>
      <body>
          <div id="div1">这是一个要被获取的标签</div>
          <script>
              var div1 = document.getElementById("div1")
              alert(div1)
          </script>
      </body>
      </html>
      

      这是就会返回一个[object HTMLDivElement]的对象

    • 解决方法二:设置页面加载完成执行的函数,在执行函数里面获取标签元素。

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Document</title>
          <script>
              // window.onload 表示的是窗口加载完成这个事件,匿名函数function表示窗口加载完成之后要执行的代码
              window.onload = function(){
                  // 通过id获取到标签
                  var div1 = document.getElementById("div1")
                  alert(div1)
              }
          </script>
      </head>
      <body>
          <!-- 给标签设置一个id属性,以便于javascript的获取 -->
          <div id="div1">这是一个要被获取的标签</div>
      </body>
      </html>
      

      这种方法运行的结果和是第一种方法一样,里面的注释写得很详细。

  • 操作标签元素的属性

    上面我们知道了如何获取标签元素,但是我们还不知道如何获取标签的属性和操作属性,接下来就来学习如何获取和操作属性

    • 首先获取的页面标签元素,然后就可以对页面标签元素的属性进行操作,属性的操作包括:

      • 属性的读取

      • 属性的设置

        • 特别注意的是:
          1. html的属性和js里面属性大多数写法一样,但是“class” 属性写成 “className”
          2. “style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
            <script>
                // 窗口加载完成之后执行的是function匿名函数里面的代码
                window.onload = function(){
                    var input1 = document.getElementById("input1");
                    var link = document.getElementById("link01");
                    // 读取属性
                    alert(input1.name);
                    alert(input1.value);
                    // 更改属性link.href
                    link.href = "https://www.baidu.com";
                }
            </script>
        </head>
        <body>
            <input type="text" name="setsize" id="input1" value="20px">
            <a href="http://www.itcast.cn" id="link01" class="sty01">这是一个链接</a>
        </body>
        </html>
        
  • 读取或设置标签包裹的内容

    innerHTML可以读取或者设置标签包裹的内容

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            window.onload = function(){
                var sDiv = document.getElementById("div1") ;
                // 查看div标签内的内容
                alert(sDiv.innerHTML);
                // 更改div标签里面包裹的内容
                sDiv.innerHTML = "hahah";
                alert(sDiv.innerHTML);
                // 把div标签替换成一个新的标签
                sDiv.innerHTML = '<a href="https://www.baidu.com">百度</a>'
            }
        </script>
    </head>
    <body>
        <div id="div1">这是一个div标签</div>
    </body>
    </html>
    

javascript数组循环和定时器

  • 数组及操作方法

    1. 数组的介绍

      • 数组就是一组数据的集合,javascript 中,数组里面的数据可以是不同类型的数据,好比 python 里面的列表。
    2. 数组的定义

      • 实例化对象方式创建

            <script>
                // 实例化创建一个数组
                var aList = new Array(1,2,3,4)
            </script>
        
 - 字面量方式创建(推荐使用)

   ```javascript
       <script>
           var aList1 = [1,2,3,4]
       </script>
   ```
  1. 多维数组(类似于python里面的列表里面嵌套列表)

        <script>
            var aLsit2 = [[1,2,3],[4,5,6]]
        </script>
    
  1. 数组的操作

    1. 获取数组的长度

              // 获取数组的长度
              var aList1 = [1,2,3]
              alert(aList1.length)
      
 2. 根据下标取值

    ```html
            alert(aList1.length)
            // 根据下标取值
            var nNum = aList1[1]
            alert(nNum)
    ```

    

 3. 从数组最后添加和删除数据

    ```html
            // 往数组里面追加数据
            aList1.push(4)
            alert(aList1.length)
            // 从数组最后面去除一个数据,并返回(有返回值)
            aList1.pop()
            alert(aList1.length)
    ```

 4. 根据下标添加和删除元素

    数组.splice(start,num,element1,.....,elementN)

    参数解析:

    1. start:必需,开始删除的索引。

    2. num:可选,删除数组元素的个数。

    3. elementN:可选,在start索引位置要插入的新元素。

       ```html
       <!DOCTYPE html>
       <html lang="en">
       <head>
           <meta charset="UTF-8">
           <meta name="viewport" content="width=device-width, initial-scale=1.0">
           <meta http-equiv="X-UA-Compatible" content="ie=edge">
           <title>Document</title>
           <script>
               var aList = [1,2,3,4,5]
               // 从索引为0的位置删除一个元素(即下标为0的元素)
               aList.splice(0,1)
               alert(aList)
               // 从索引为0的位置开始删除两个元素
               aList.splice(0,2)
               alert(aList)
               // 在索引为0的位置删除0个元素,插入"abc","bcd","haha"这三个元素
               aList.splice(0,0,"abc","bcd","haha")
               alert(aList)
           </script>
       </head>
       <body>
           
       </body>
       </html>
       ```
  • 循环:循环就是某个时间重复执行

    1. for循环语法:for(初始值;比较表达式;增量){每次满足条件要执行的代码}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            var aList = [1,2,3,4,5]
            // for(初始值;比较表达式;增量){每次满足条件要执行的代码}
            // 注意:括号里面的语句要用";"隔开  
            for(var i = 0; i< aList.length;i++){
                alert(aList[i])
            }
        </script>
    </head>
    <body>
        
    </body>
    </html>
    
    1. while 循环语法:先定义两个变量while(比较表达式){满足条件执行的代码;自增量}

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Document</title>
          <script>
              var aList = [1,2,3,4,5];
              var nNum = 0;
              while(nNum < aList.length){
                  alert(aList[nNum]);
                  nNum++;
              }
          </script>
      </head>
      <body>
          
      </body>
      </html>
      
      1. do while循环:do while语法:do{满足条件执行的代码;自增量}while(比较条件表达式)

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
            <script>
                // do while语法:do{满足条件执行的代码;自增量}while(比较条件表达式)
                var aList = [1,2,3,4,5];
                var nNum = 0;
                do{alert(aList[nNum]);nNum++
                }while(nNum < aList.length)
            </script>
        </head>
        <body>
            
        </body>
        </html>
        
        • 拓展:字符串拼接:用“+”

          如果拼接的多个不是字符串类型,会自动转换成字符串类型,然后再拼接。

  • 定时器

    定时器就是在一段特定的时间后执行某段程序代码。

    • 定时器的使用
      1. setTimeout(func[, delay, param1, param2, ...]) :以指定的时间间隔(以毫秒计)调用一次函数的定时器
      2. setInterval(func[, delay, param1, param2, ...]) :以指定的时间间隔(以毫秒计)重复调用一个函数的定时器

    setTimeout函数的参数说明:

    • 第一个参数 func , 表示定时器要执行的函数名
    • 第二个参数 delay, 表示时间间隔,默认是0,单位是毫秒
    • 第三个参数 param1, 表示定时器执行函数的第一个参数,一次类推传入多个执行函数对应的参数。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            // 这是定时器要执行的函数
            function fnOk(){
                alert("ok")
            }
            // 用setTimeout调用该函数,设置延迟的时间(ms)
            setTimeout(fnOk,2000)
        </script>
    </head>
    <body>
        
    </body>
    </html>
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • JavaScript介绍JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户...
    LiWei_9e4b阅读 452评论 0 0
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 3,875评论 0 0
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,763评论 0 8
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,168评论 0 3
  • 转载请著名出处 GitHub-TYRMars 文章Github地址 JavaScript基础知识剖析 01 01-...
    TYRMars阅读 560评论 0 7