• JavaScript,你好!(二)


    操作BOM对象

    浏览器介绍

    JavaScript和浏览器的关系?
    JavaScrpit诞生就是为了能够让它在浏览器中运行!
    BOM:浏览器对象模型

    • IE 6~11
    • Chrome
    • Safari
    • FireFox

    第三方

    • QQ浏览器
    • 360浏览器

    window

    window代表 浏览器窗口

    Navigator

    Navigator,封装了浏览器的信息

    navigator.appName
    "Netscape"
    navigator.appVersion
    "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
    navigator.userAgent
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
    navigator.platform
    "Win32"
    

    大多数时候,我们不会使用navigator对象,因为会被人为修改
    不建议使用这些属性来判断和编写代码

    screen

    screen.width
    1920px
    screen.height
    1080px
    

    location(重要)

    location代表当前页面的URL信息

    href: "https://www.baidu.com/?tn=02003390_5_hao_pg"
    ancestorOrigins: DOMStringList
    origin: "https://www.baidu.com"
    protocol: "https:"
    host: "www.baidu.com"
    

    document

    document代表当前的页面,HTML DOM文档树

    document.title
    "百度一下,你就知道"
    document.title='你长得真好看'
    "你长得真好看"
    

    获取具体的文档树节点

    <dl id='app'>
          <dt>Java</dt>
          <dd>JavaSE</dd>
          <dd>JavaEE</dd>
    </dl>
    <script>
          var dl = document.getElementById('app');
    </script>
    

    获取Cookie

    document.cookie
    "PSTM=*******...";
    

    history

    history代表浏览器的历史记录

    history.back();      //后退
    history.forward();      //前进
    

    操作DOM对象

    核心

    浏览器网页就是一个Dom树形结构

    • 更新:更新DOM节点
    • 遍历DOM节点:得到DOM节点
    • 删除: 删除一个DOM节点
    • 添加: 添加一个新的节点

    要操作一个DOM节点,就必须要先获得这个DOM节点

    获得DOM节点

    //对应css选择器
    var h1 = document.getElementsByTagName('h1');
    var p1 = document.getElementById('p1');
    var p2 = document.getElementByClassName('p2');
    var father = document.getElementById('father');
    
    var childrens = father.children;      //获取父节点下的所有子节点
    //father.firstChild
    //father.lastChild
    

    更新节点

    <div id="id1">
    
    </div>
    <script>
    var id1= document.getElementById("id1");
    </script>
    

    操作文本

    id1.innerText='456';//修改文本的值
    id1.innerHTML='<strong>123<strong>'//可以解析HTML文本标签
    

    操作css

    id1.style.color = 'yellow'; //属性使用 字符串 包裹
    id1.style.fontsize = '20px'; //注意驼峰命名问题
    id1.style.padding = '2em'; 
    

    删除节点

    删除节点步骤:先获取父节点,在通过父节点删除自己

    <div id="father">
          <h1>标题一</h1>
          <p id="p1">p1</p>
          <p class="p2">p2</p>
    </div>
    <script>
          var self = document.getElementById('p1');
          var father = p1.parentElement;
          father.removeChild(self)
    
          //删除是一个动态的过程
          father.removeChild(father.children[0])
          father.removeChild(father.children[1])
          father.removeChild(father.children[2])
    </script>
    

    注意:删除多个节点的时候,children是在时刻变化的,删除节点的时候一定要注意。

    插入节点

    我们获得了某个节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素了,我们这样干会产生覆盖
    追加:

    <script>
    var js = doument.getElementById('js');
    var list = doument.getElementById('list');
    list.appendChild(js);      //追加到后面
    </script>
    

    创建一个新的标签,实现插入

    <script>
    var js = doument.getElementById('js');      //已经存在的节点
    var list = doument.getElementById('list');
    //通过js创建一个新的节点
    var newP = document,createElement('p'); //创建一个p标签
    newP.id = 'newP';
    newP.innerText = "hello,world!";
    //创建一个标签节点
    var myScript = document.createElement('script');
    myScript.setAttribute('type','text/javascript');
    //可以创建一个Style标签
    var myStyle = document.createElement('style');//创建了一个空style标签
    myStyle.setAttribute('type','text/css');
    myStyle.innerHTML = 'body{back-ground-color:chartreuse;}';//设置标签内容
    
    document.getElementsByTagName('head')[0].appedChild(myStyle);
    </script>
    

    insertBefore

    var ee= document.getElementById('ee');
    var js= document.getElementById('js');
    var list= document.getElementById('list');
    //要包含的子节点.insertBefore(newNode,targetNode)
    list.insertBefore(js.ee);
    

    操作表单

    表单是什么 form DOM 树

    • 文本框 text
    • 下拉框 select
    • 单选框 radio
    • 多选框 checkbox
    • 隐藏域 hidden
    • 密码框 password
    • ....

    表单的目的是用来提交数据

    获得要提交的信息

    <form action="post">
    <p>
          用户名:<input type="text" id="username">
    </p>
    
    <!--多选框的值,就是定义好的value-->
    <p>
    性别:<input type="radio" name="sex" value="man" id="boy"> 男
          <input type="radio" name="sex" value="women" id="girl"> 女
    </p>
    </form>
    <script>
          var input_text = document.getElementById('username');
          var boy_radio = document.getElementById('boy');
          var girl_radio = document.getElementById('girl');
    
          //得到输入框的值
          input_text.value
          //修改输入框的值
          input_text.value="123"
    
          //对于单选框,多选框等等固定的值,boy_radio.value只能取得当前的值
          boy_radio.checked;      //查看返回的结果,是否为true,如果为true,则被选中
          boy_radio.checked = true;      //赋值
    </script>
    

    提交表单。md5加密密码,表单优化

    <form action='https://www.bilibili.com' method='post' onsubmit='return run()'>
          <p>
          用户名:<input type='text' id='username' name='username'>
          </p>
          <p>
          密码:<input type='password' id='input-password'>
          </p>
          <input type='hidden' id='md5-password' name='password'>
    
          <!--绑定事件 onclick 被点击-->
          <button type='submit'>提交</button>
    </form>
    
    <script>
          function run(){
        alert("冲");
          var username = document.getElementById('username');
          var pwd = document.getElementById('input-password');
          var md5pwd = document.getElementById('md5-password');
           md5pwd.value = md5(pwd.value);
            //可以效验判断表单内容,true就是通过提交,false阻止提交
          return true;
    }
    </script>
    
    频频回头的人注定走不了远路。
  • 相关阅读:
    python 将函数参数一键转化成字典的技巧,非**kwargs,公有方法和函数抵制kwargs。
    js复制文本内容到剪贴板
    python 记录linux网速到文件。
    使用redis原生list结构作为消息队列取代celery框架。
    supervisor来自动化部署,集成git
    linux windows安装python的最佳方式,miniconda
    celery
    python设计模式之猴子补丁模式
    一个自定义python分布式专用爬虫框架。支持断点爬取和确保消息100%不丢失,哪怕是在爬取进行中随意关停和随意对电脑断电。
    python sort和sorted区别。
  • 原文地址:https://www.cnblogs.com/CHENFANgY/p/12905699.html
Copyright © 2020-2023  润新知