2021-08-19 笔记

   // js组成:ECMAScript  DOM  BOM

    /*

      BOM----> Browser Object Model

      浏览器对象模型,浏览器的操作内容都是在对象的方法操作

      浏览器顶级对象 window 

    */

    // console.log(window);

    // alert('弹弹弹');

    // window.alert('弹走鱼尾纹');

    // 在全局中定义的变量其实就是在window身上作为属性


    // 全局中 this 指向 window

    // console.log(this);

    // 全局中的 top 指向window

    // console.log(top);

    // 全局中的name属性在window上有,属性值是字符串

    // console.log(name);

    // console.log(window.name);

    // console.log(typeof  window.name); // string


    // 浏览器的尺寸

    // innerWidth、innerHeight 获取浏览可视窗口的宽高(包含了滚动条)

    // console.log(window.innerHeight);

    // console.log(window.innerWidth); 

  </script>


</body>

</html>


/*

    弹出层

      1、 alert()    提示弹框    没有返回值   

      2、 confirm()  询问弹窗 

        当我们点确定的时候返回true

        当我们点取消的时候返回false

      3、 prompt()  提示输入弹窗

        当点击取消的时候返回null

        当输入并点击确定的返回输入的内容(如果啥也没写返回空字符串)

    */

    // console.log(alert('123')); // undefined

    // console.log(confirm('can you marry me?'));

    // console.log(prompt('请输入你的身份证'));


// location 对象中就存储而来浏览器的地址信息

    // console.log(location);

    // 1. location.href

    // location对象中href属性就是浏览器访问的完整地址

    //  会将地址中的中文转码为url中的编码格式

    // console.log(location.href);

    // 也可以通过设置location.href属性来实现浏览器的跳转

    //  会直接跳转到指定的url地址

    // btn.onclick = function(){

      // location.href = 'http://1000phone.com';

    // }

    // 2. location.reload()  重新加载页面

    // 这个方法不要写在全局中

    // location.reload()

    // btn2.onclick = function(){

    //  location.reload()

    // }

    /*

      http://localhost/2111/location.html#12345?name=zs&age=123

      3. loaction中的其他属性

          hash  地址中#后面的东西 #12345?name=zs&age=123

          host 是访问地址主机的地址  localhost

          search 是浏览器中?后面的内容  ?name=zs&age=123   

    */



/*

    在对象history上记录了浏览器的历史记录

    // 前提是要有历史记录,

    //  history对象中的lenght属性 如果为1表示没有历史记录

    // 1. history.back()  回到历史记录的上一个页面

    // 2. history.forward() 去到历史记录中的下一个页面

    // 3. history.go(n)  去到历史记录中指定的页面

          history.go(1) 相当于history.forward()

          history.go(-1) 相当于history.back()


  */


// 在对象navigator中记录了浏览器的各种信息

  // appName 获取到浏览器的名字 html5的兼容问题  不一定有效

  // console.log(navigator.appName); // Netscape

  // appversion 浏览器的版本 不一定有效

  // console.log(navigator.appVersion);

  // 5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36

  // platform  浏览器运行的环境版本 不一定有效

  // console.log(navigator.platform); // Win32

  //  userAgent  获取浏览器的版本信息

  // console.log(navigator.userAgent);

  // Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36



// 浏览器事件

  // 1. 浏览器的滚动事件 scroll 当滚动条动起来的时候触发的事件

    // 浏览器页面的滚动距离,浏览器卷去的距离

    // 通过scrollTop和scrollLeft获取垂直和水平卷去的距离

  // 获取页面卷去的距离 会有兼容问题

  // document.body.scrollTop 当页面没有使用DOCTYPE声明的时候可以获取到

  // document.documentElement.scrollTop  当页面有使用DOCTYPE声明的时候可以获取到

  // window.onscroll = function(){

    // console.log(document.body.scrollTop);

    // console.log(document.documentElement.scrollTop);

    // console.log(document.body.scrollLeft);

    // console.log(document.documentElement.scrollLeft);

  // }


  // 2. 浏览器的页面加载事件 load

  //  当浏览器页面中的内容(页面结构,文本,图片,css,js等资源)全部加载完毕后会触发的事件

  // window.onload = function(){

  //  btn.onclick = function(){

  //    alert('你真棒');

  //  }

  // }

  // btn.onclick = function(){

  //  alert('你真棒');

  // }

  // 3. 浏览器的页面可视窗口变化事件  resize

  //  当浏览器窗口大小变化的时候会触发

  // window.onresize = function(){

  //  // console.log(window.innerWidth);

  //  // console.log(window.innerHeight);

  // }


// 定时器分两种:

  // 定时器都有一个返回值:返回定时器的标识id(就是数字标识)

  //  1. 间隔定时器  setInterval()

  //  2. 倒计时定时器(爆炸定时器)  setTimeout()

  // 1. 间隔定时器

  // 语法: setInterval(函数,时间);  时间单位是毫秒

  //  每隔一段时间就运行一次函数

  // 返回定时器标识id

  // var timerId = setInterval(function(){

  //  alert('我又来啦');

  // },5000);

  // console.log(timerId);

  // 2. 倒计时定时器

  // 语法: setTimeout(函数,时间)  时间单位是毫秒

  //  过一段时间会执行函数

  // 返回定时器标识id 

  // var timerId = setTimeout(function(){

  //  console.log('爆炸');

  // },3000);

  // console.log(timerId);

  // 清除定时器

  // clearInterval(),clearTimeout()

  // 语法:clearInterval(定时器标识)  关闭对应的定时器

  // 语法:clearTimeout(定时器标识)  关闭对应的定时器


  // var timerId = setTimeout(function(){

  //  console.log('时间到了');

  // },5000);

  // var timerId2 = setInterval(function(){

  //  console.log('等会我还来');

  // },2000)

  // btn.onclick =function(){

  //  // clearTimeout(timerId);

  //  // clearTimeout(timerId2)

  //  clearInterval(timerId);

  //  clearInterval(timerId2);

  // }


// 输出顺序

  // code start

  // code end

  // 我是定时器

  /*

    定时的执行是异步代码执行:


    同步执行: 代码按顺序执行

    异步执行: 代码不按顺序执行,先执行同步代码,当所有同步代码执行完毕,才开始执行异步代码


  */


/*

      DOM ---> Document Object Model

                文档    对象    模型

      文档对象模型: 操作页面中的节点

        doucument 是DOM中的顶级对象 其上一级是window对象     

      // 获取页面中的特殊标签

      // document.body  页面中body标签

      // 获取 页面中的 head 标签

      // document.head

      // 获取页面中的title,也可设置页面的title

      // document.title

    */

    // console.log(window);

    // console.log(document.body);

    // console.log(document.head);

    // console.log(document.title);

    // document.title = 'DOM';


// 要操作页面的中标签元素,我们要先获取到标签元素

  // 获取DOM中的标签元素的方法

  // 1. 通过id获取

  // 语法: document.getElementById(标签的id值)

  //  返回对应的标签元素

  //  如果没有这个标签,则返回null

  // var li1 = document.getElementById('one');

  // console.log(li1);  // 获取到标签元素

  // var li66 = document.getElementById('one6');

  // console.log(li66); // null

  // 2. 通过类名获取  class的值

  // 语法: document.getElementsByClassName(类名)

  // 返回对对应类名的标签组成 伪数组

  // 如果没有对应的类名 则返回空的伪数组

  // var lis = document.getElementsByClassName('cls');

  // console.log(lis);

  // var lis66 = document.getElementsByClassName('cls66');

  // console.log(lis66);

  // 3. 通过标签名获取元素 

  // 语法: document.getElementsByTagName(标签名)

  // 返回一个伪数组,里面是匹配的标签

  // 如果没有匹配到 则返回空的伪数组

  // var lis2 = document.getElementsByTagName('li');

  // console.log(lis2);

  // var uls = document.getElementsByTagName('ul');

  // console.log(uls);

  // 4. 通过选择器获取元素 querySelector()

  // 语法: document.querySelector(选择器) 

  //  选择器的写法和css中一样一样的

  // 返回选择器匹配的第一个元素

  // 如果选择器匹配不到元素  null

  // console.log(document.querySelector('#one'));

  // console.log(document.querySelector('li'));

  // console.log(document.querySelector('#id'));


  // 5. 通过选择器获取元素 querySelectorAll()

  // 语法:document.querySelectorAll(选择器)

  //  选择器的写法和css中一样一样的

  // 返回选择器匹配的所有元素的一个伪数组

  // 如果选择器选择不到,则返回空的伪数组

  // console.log(document.querySelectorAll('#one'));

  // console.log(document.querySelectorAll('li'));

  // console.log(document.querySelectorAll('lilili'));

  // console.log(document.getElementById('one'));

  // 不建议直接通过id属性值作为标签元素在js使用

  // console.log(one);// 不建议使用

</script>

<script>

  // var lis = document.getElementsByClassName('cls');

  // console.log(lis);

  // 伪数组 和数组一样都有索引下标和length属性表示长度

  // 但是伪数组不能使用数组方法

  // 报错

  // lis.forEach(function(){ //  lis.forEach is not a function

  //  console.log(666);

  // })


// 操作DOM属性

  /* 

    1. 操作标签的内容

      innerText  获取设置标签的文本(不识别html标签)

      innerHTML  获取设置标签的超文本(识别html标签)

      // 设置都是覆盖性的设置

    2. 操作标签属性

        getAttribute(属性名)  获取标签的属性值

        setAttribute(属性名,属性值)  设置标签的属性

        removeAttribute(属性名)  移除标签的属性

    3. 标签的css样式操作

      style      获取到标签的所有行内样式

      style.样式名  获取设置标签的行内样式值

    5. 操作标签的类名

      className  获取设置标签的类名

        // 设置是覆盖性设置     

  */

  var div = document.getElementsByTagName('div')[0];

  // console.log(div.innerText);  //are you ok?  // 获取文本内容

  // div.innerText = 'thank you'; // 设置文本内容

  // div.innerText = '<i>thank you</i>'; // 设置文本内容

  // console.log(div.innerHTML); // <p>are you ok?</p>

  // div.innerHTML += '<i>thank you</i>';  //使用+=拼接原来的内容

  // 获取标签属性

  // console.log(div.getAttribute('id')); // divId

  // 设置标签属性

  // div.setAttribute('index','666');

  // div.setAttribute('id','good');

  // 移除标签的属性

  // div.removeAttribute('num');

  // div.removeAttribute('id')

  // 获取标签的行内样式

  // console.log(div.style);

  // console.log(div.style.color);

  // div.style.color = 'yellow';

  // css中的样式名,如果是多个单词组成的,在js要使用小驼峰写法

  // div.style.fontSize = '50px';

  // 获取设置标签的类名

  // console.log(div.className);

  // div.className = 'green';

  // div.className += ' green';

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容

  • BOM / DOM(上) 今天开始我们开始使用 js 去操作浏览器和页面中的 html 元素了 BOM BOM(B...
    蜗牛的愿望正在缓冲中阅读 257评论 0 0
  • JavaScript中Dom 1.基本概念 1.1 什么是window? window:是一个全局对象, 代表浏览...
    煤球快到碗里来阅读 249评论 0 0
  • js的组成部分 前面学习的部分是ECMAScript部分,都是基础语法部分。基础语法只是规定的代码如何写,并不能实...
    新生勿扰阅读 289评论 0 0
  • DOM 根据id获取元素 var div = document.getElementById('main'); 注...
    wrootlflvl阅读 353评论 0 0
  • 十二、JavaScript的DOM特效 在web浏览器上,window对象是一个全局对象,代表web浏览器中一个打...
    刘远舟阅读 367评论 0 1