前端基础 - DOM&JS

1. DOM( Document Object Model 文档对象模型)

一个 web 页面的展示,是由 html 标签组合成的一个页面。dom 对象实际就是将 html 标签转换成一个文档对象。

可以通过 dom 对象中 js 提供的方法,找到 html 的各个标签。通过找到标签就可以操作标签使页面动起来。

  • 获取标签
    • 基本操作:

      var demo = document.getElementById(‘id1‘);    //定位到单个元素,因为id是唯一的
      var eleList = document.getElementsByClass(‘class1‘);    //返回的是 list
    • 获取子元素:

      demo.children;    //返回 list,取到所有的子元素
      demo.children[1];    //取特定位置的子元素
      demo.lastElementChild;    //拿到最后一个子元素
    • 获取下一个兄弟标签:

      demo.nextElementSibling;    //下一个
      demo.previousElementSibling;    //上一个
    • 获取上一级标签:demo.parentElement;
  • 重新赋值
    • demo.innerText = ‘<input>‘;    //将demo div 下的内容变为新内容(字符串)
      demo.innerHTML=‘<input>‘;    //符合HTML的规则时会翻译后显示
  • 获取输入框的值(能获取到就能重新赋值)
    • demo.value;
  • 下拉框
    • var select = document.getElementById(‘s1‘);
      select.value = ‘北京‘;    //重新赋值
      select.selectedIndex = 2; //选中的选项为第几个(从0开始)
  • 样式
    • 定位到某个元素的类名,可以对其进行更改(定位到的都可以重新赋值来更改)
    • 对元素有多个的,也可以进行增加、删除操作:

      var clst = document.getElementById(‘clist‘);
      clst.classList.remove(‘demo‘);
      clst.classList.add(‘temp‘);
    • 还可以通过 clst.style 获取到 css 的样式,并对其进行修改,例如:clst.style.backgroundColor=‘black‘;
  • 创建标签1(用内置功能)
    • step 1:定义。

      var input = document.getElementById(‘i1‘);
      input.setAttribute(‘type‘,‘text‘);    //为创建的标签增加属性
    • step 2:渲染到页面。

      create = document.getElementById(‘create‘);
      create.appendChild(input);
  • 创建标签2(用字符串的方式)

    var inputStr = ‘<input type="text" value="login">‘;
    create.insertAdjacentHTML(‘beforeEnd‘,inputStr);

    这里的 beforeEnd(子标签后) 还有另外的三种方法,分别是:beforeBegin( 标签前), afterBegin(子标签前), afterEnd(标签后),表示插入的四个位置。

  • 删除属性
    • input.lastElementChild.removeAttribute(‘style‘); //style为属性名称
  • 划重点的知识点:
    • <script> 可以在 <head> 中也可以在 <body> 中,区别是放在 body 中可以先加载页面内容再加载样式,提高用户体验。(因为 html 代码从上到下解析)

2. JS

  • JS 变量

    • es5:

      1 name = ‘abc‘;    //默认全局变量
      2 function func(){
      3     var name = ‘Lucy‘;    //局部变量
      4 }
    • es6:

      1 //let 定义的变量没有预解析
      2 let num1=1;
      3 const nums=2;     //常量

      预解析是指,在只定义无声明的情况下,变量的默认值为 undefined。没有预解析则代表,只定义无值。

  • JS 基本数据类型
    • 字符串(str = ‘Today is a nice day‘)

      • 拼接

        //有两种
        //1.直接拼接
        str+‘,开心‘;
        
        //2.使用方法
        str.concat(‘啦啦啦‘);
      • 根据角标取值:str.charAt(0); 结果:T
      • 切片

        str.substring(0,3);
        str.slice(0,3);

        切片都是顾头不顾尾,以上结果为“Tod”

      • 长度:str.length
      • 元素的角标位置:str.indexOf(‘H‘);  //要查找的元素存在则返回其下标,不存在则返回-1
      • 变更大小写

        str.toLowerCase();    //小写
        str.toUpperCase();    //大写
      • 转为数组

        str.split(‘,‘2);    //表示以逗号分割,返回的结果保留前2个

        用法与 python 相同,不过 js 可以规定返回的个数。

    • 数字类型(JS 只有一种数字类型,数字可以带小数点)
      • 字符串转数字

        var num="18.8";
        parseInt(num);    //18
        parseFloat(num);    //18.8
      • 数字转字符串

        1 num.toString();
        2 //也可以用拼接的方式
        3 num+‘‘;    //字符串拼接的方法可以使数字变为字符串
    • 布尔类型:true 和 false,都是小写
    • 数组
      • 创建

        alist = new Array(1,2,3,4);
        blist = [1,2,3,4,5];

        以上两种方式都可以。

      • 长度:list.length
      • 增:list.push(5); 在末尾增加
      • 删:list.pop(); 获取尾部元素并删除
      • 特殊的增和删:

        list.shift();    //拿到第一个元素并删除
        list.unshift(1);    //头部插入
      • 增删改一体的方法

        var str=[‘a‘,‘b‘,‘c‘];
        //第一个代表起始位置,第二个代表删除个数,第三个代表增加的元素
        str.splic(1,0,‘a1‘);       //增
        str.splic(1,1);    //‘b‘被删除
        str.splic(1,1,‘000‘);    //改
      • 切片:str.slice(1,2)
      • 反转:str.reverse()
      • 转字符串:str.join(‘-‘);  //将数组以该符号连接成字符串;
      • 数组拼接:str.concat([‘abc‘]);  //如果数组直接相加会变为字符串;
      • 重要方法:数组与字符串的相互转化
        • list = [“April”,“May”,“June”];
          
          //数组转字符串
          var strList = JSON.stringify(list);
          
          //字符串转数组
          jsonList = JSON.parse(strList);
    • 对象(字典)

      var dict={"name":"april","sex":"female","age":18};
      //查
      dict[‘name‘];
      dict.name;
      //删
      delete dict[‘name‘];
  • JS 语法
    • 事件

      1 <input type="text" id="input-test" onclick="test()">
      2
      3 <script>
      4     function test(){
      5         console.log(123);
      6     }
      7 </script>

      点击触发 test() 函数

    • 条件判断
      • “==”只判断值是否相等,“===”判断值和类型是否都相等
      • 与:&&
      • 或:||
      • //if条件判断
        var a="123";
        var b=123;
        if (a==b){
            alert(‘=‘);
        }else{
            alert(‘!‘);
        }
      •  1 //switch
         2 switch(a){
         3     case ‘a‘:
         4         console.log(‘a‘);
         5         break;
         6     case ‘123‘:
         7         console.log(‘123‘);
         8         break;
         9     default:
        10         console.log(‘default‘);
        11 }

        ??记得加 break,default 不用加。

    • for 循环
      • 数组、字符串循环的是角标,字典循环的是key,??这里只能通过 dict[key] 取值
      • 1 list = ["April","May","June"]
        2 for(var i=0; i<list.length; i++){
        3     console.log(i);
        4     console.log(list[i]);
        5 }

        以上实现的是循环打印数组的角标和对应内容。

    • while 循环
    • 匿名函数

      1 <input type="button" id="test-button">
      2
      3 <script>
      4     var element = document.getElementById(‘test-button‘);
      5     element.onclick = function(){
      6         console.log(‘匿名函数‘);
      7     }
      8 </script>

      这种方式的好处是可以不那么明显的将方法直接写在标签内,减少代码的安全隐患。

    • 函数(作用域:函数内):不另举例,以上“事件”中的 test() 即为函数的例子。
    • ajax 异步请求(来自 jquery)
      • jquery 相当于对 dom 的简单封装,让 dom 变得更加简单
      • $ 为使用 jquery 的开始
      • 1 $.ajax{    //向后端发送请求
        2     method:‘post‘,
        3     url:‘https://www.baidu.com‘,
        4     data:data,    //此处省略,具体看接口的要求
        5     success: function(data){
        6         console.log(data);    //data 为接口成功后的返回
        7     }
        8 }

        success:function(){} 是对请求结果的处理,可以根据实际情况具体判断。

原文地址:https://www.cnblogs.com/april-aaa/p/11631295.html

时间: 2024-08-29 22:29:47

前端基础 - DOM&JS的相关文章

python学习_day55_前端基础之JS(3)

DOM(document object model)对象把 HTML 文档呈现为带有元素.属性和文本的树结构(节点树),定义了访问和操作HTML文档的标准方法. 一.查找标签 1.直接查找标签 总共有如下四种直接查找的方式: document.getElementById("idname") //通过id名 document.getElementsByTagName("tagname") //通过标签名 document.getElementsByName(&quo

python学习_day54_前端基础之js(2)

在JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,String.Math.Array.Date.RegExp都是JavaScript中重要的内置对象,在JavaScript程序大多数功能都是基于对象实现的. 一.字符串String对象 1.字符串对象的创建 //方式一:变量 = "字符串" s="HEllo world"; //方式二:字串对象名称 = new String (字符串) a=n

重温前端基础之-js排序算法

javascript数组常用的方法: push():返回值,数组新的长度 pop():返回值,被删除的数组末尾元素 shift():返回值,被删除的数组首部元素 unshift():返回值,数组新的长度 concat():返回值,拼接后新的数组 slice():返回值,截取的新的数组 splice():返回值,被插入/删除/替换元素后的数组 map():返回新的数组 filter():返回被筛选后的新的数组 reduce():返回新的数组 sort():返回排序后的新的数组 与数组有关的两个:

前端基础之JS

流程控制 if-else var a = 10; if (a > 5){ console.log("yes"); }else { console.log("no") } if-else if-else var day = new Date() switch (day) { case 0: console.log("sunday") break; case 1: console.log("monday") break; d

前端基础面试题(JS部分)

1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String 值类型:数值.布尔值.null.undefined. 引用类型:对象.数组.函数. 堆栈数据结构:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出! js数组中提供了以下几个方法可以让我们很方便实现堆栈: shift:从数组中把第一个元素删除,并返回这个元素的值. unshift: 在数组的开头添加一个或更多元素,并返回

前端基础之BOM和DOM:

目录 前端基础之BOM和DOM 前言 window对象 BOM与DOM操作 DOM学习流程 一些常用的Window方法: window的子对象 navigator对象(了解即可) screen对象(了解即可) history对象(了解即可) location对象 弹出框 计时相关 DOM HTML DOM 树 查找标签 直接查找 间接查找 节点操作 创建节点 添加节点 删除节点: 替换节点: 获取值操作 对类属性操作 class的操作 指定CSS操作 事件 常用事件 绑定方式: window.o

前端基础只是学习

目录 第十一章 前端开发 11.1 html基础 1. 创建html文件 2. 基本格式 3. head标签(5) 4. body标签(7) 11.2 CSS基础 1. div标签 2. lable标签 2. css(层叠样式表) 3. css选择器 11.3 CSS 浮动 内容回顾: 1.div和span标签在网页中的作用 2.css基础选择器和高级选择器有哪些? 3.盒子模型的属性有哪些?并说明属性的含义,画出盒子模型图 4.如何让文本垂直和水平居中? 5.如何清除a标签的下划线? 6.如何

基础DOM和CSS操作

DOM简介 DOM是一种文档对象模型,方便开发者对HTML结构元素内容进行展示和修改.在JavaScript中,DOM不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性.扩展性.在jQuery中,已经将最常用的DOM操作方法进行了有效封装,并且不需要考虑浏览器的兼容性. D表示的是页面文档Document.O表示对象,即一组含有独立特性的数据集合.M表示模型,即页面上的元素节点和文本节点. DOM有三种形式,标准DOM.HTML DOM.CSS DOM(难道不是XML DOM吗?),大部

JavaScript基础—dom,事件

Js基础-DOM 1:dom:文档对象模型 Dom就是html页面的模型,将每个标签都作为一个对象,js通过调用dom中的属性,方法就可以对网页中的文本框,层等元素进行编程控制.Dom就是一些让javascript能操作html页面控件的类,函数. 这就是文档对象模型.按照xml文档的理解就可以. à页面中的属性,标签要是没有注明给那个对象,则统一时给window的,我们都可以通过window点击出来,进行操作,这个js中理解的一样.但是我们现在通过document.getElementById