IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Javascript学习摘抄,DOM文档树结构 -> 正文阅读

[JavaScript知识库]Javascript学习摘抄,DOM文档树结构

?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>JS For Beginners</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <header>
      <h1>JS For Beginners</h1>
    </header>

    <section class="container">
      <form id="my-form">
        <h1>Add User</h1>
        <div class="msg"></div>
        <div>
          <label for="name">Name:</label>
          <input type="text" id="name">
        </div>
        <div>
          <label for="email">Email:</label>
          <input type="text" id="email">
        </div>
        <input class="btn" type="submit" value="Submit">
      </form>

      <ul id="users"></ul>

      <!-- <ul class="items">
        <li class="item">Item 1</li>
        <li class="item">Item 2</li>
        <li class="item">Item 3</li>
      </ul> -->
    </section>
    

    <script src="main.js"></script>
  </body>
</html>

CSS代码段?,供下面正文代码段参考。

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }
  
  body {
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.6;
  }
  
  ul {
    list-style: none;
  }
  
  ul li {
    padding: 5px;
    background: #f4f4f4;
    margin: 5px 0;
  }
  
  header {
    background: #f4f4f4;
    padding: 1rem;
    text-align: center;
  }
  
  .container {
    margin: auto;
    width: 500px;
    overflow: auto;
    padding: 3rem 2rem;
  }
  
  #my-form {
    padding: 2rem;
    background: #f4f4f4;
  }
  
  #my-form label {
    display: block;
  }
  
  #my-form input[type='text'] {
    width: 100%;
    padding: 8px;
    margin-bottom: 10px;
    border-radius: 5px;
    border: 1px solid #ccc;
  }
  
  .btn {
    display: block;
    width: 100%;
    padding: 10px 15px;
    border: 0;
    background: #333;
    color: #fff;
    border-radius: 5px;
    margin: 5px 0;
  }
  
  .btn:hover {
    background: #444;
  }
  
  .bg-dark {
    background: #333;
    color: #fff;
  }
  
  .error {
    background: orangered;
    color: #fff;
    padding: 5px;
    margin: 5px;
  }

了解全局window?

console.log(window); //浏览器的父亲元素
window.alert(1);

如何从DOM中选取元素

Single?element?selectors?单元素选择器(推荐使用querySelector抓取单元素)

console.log(document.getElementById('my-form'));   //通过getElementById直接打印
console.log(document.querySelector('h1'));     //通过querySelector选中,像选中类和标签,几乎是任何东西。querySelector运行很像JQuery。推荐使用!

如何保存选取元素

const form = document.getElementById('my-form');  //也可以通过赋值将其储存在变量中
console.log(form);       //和直接打印一样的作用

multiple?element?selectors?多元素选择器(推荐使用querySelectorAll抓取多元素)

console.log(document.querySelectorAll('.item'));        //得到数组一样的nodelist,可以直接对其使用数组一样的方式,egg. forEach,推荐使用!
console.log(document.getElementsByClassName('item'));       //,按照类抓取,得到的Html Collection 不是一个数组,必须手动转化成数组。不推荐使用
console.log(document.getElementsByTagName('li'));       //按照标签抓取,得到的Html Collection 不是一个数组,必须手动转化成数组。不推荐使用

循环遍历

?querySelectorAll抓取的可以直接按照数组处理,使用forEach遍历。这里仅仅为演示querySelectorAll的功能。

const items = document.querySelectorAll('.item');
items.forEach((item) => console.log(item));

操控和修改DOM

const ul = document.querySelector('.items');
console.log(ul);
// ul.remove();
// ul.lastElementChild.remove();
ul.firstElementChild.textContent = 'Hello';
ul.children[1].innerText = 'Brad';  //索引【1】选中第二个元素,注意索引顺序
ul.lastElementChild.innerHTML  = '<h1>Hello</h1>';  //动态添加html内容使用innerHTML.

const btn = document.querySelector('.btn'); //  通过类btn用querySelector抓取按钮,
btn.style.background = 'red';   //  为什么有CSS还要写,可以写成时间和函数,使其动态处理。例如单机时改变颜色,大小,可以在页面中实时操控大小。

监听器?

const btn = document.querySelector('.btn'); //通过类btn用querySelector抓取按钮,

btn.addEventListener('mouseover', (e) => {      //给btn这个元素增加一个click动作 的监听器,内容为箭头函数内的内容。MDN学习。
    e.preventDefault();     //直接打印click会出现闪烁,submit button提交按钮使用click事件,需阻止默认行为。
    // console.log('click');
    // console.log(e.target);  //打印事件作用的元素
    document.querySelector('#my-form').style.background = '#ccc';   //抓取ID改变背景色
    document.querySelector('body').classList.add('bg-dark');    //抓取body增加CSS预先准备好的样式、
    document.querySelector('.items').lastElementChild.innerHTML = '<h1>Hello</h1>';
});

?输入值和获取值的小应用

?

const myForm = document.querySelector('#my-form');
const nameInput = document.querySelector('#name');
const emailInput = document.querySelector('#email');
const msg = document.querySelector('.msg');
const userList = document.querySelector('#users');

myForm.addEventListener('submit', onSubmit);    //整个表单增加submit监听,创建onSubmit函数
function onSubmit(e){
    e.preventDefault();     //一旦提交,组织默认行为
    console.log(nameInput.value);       //打印name表格的值
    if(nameInput.value === '' || emailInput.value === ''){
        msg.classList.add('error');     //抓取msg增加CSS预先准备好的样式、
        msg.innerHTML = 'Pls enter all fields';
        setTimeout(() => msg.remove(),3000);    //settimeFunction 三秒后消失
    }else{
        const li = document.createElement('li');    //凭空创造一个新节点li
        li.appendChild(document.createTextNode(`${nameInput.value} : ${emailInput.value}`));    //插入带有输入框文本值的节点

        userList.appendChild(li);   //在用户列表插入节点li

        nameInput.value = '';    //Clear Fields清空输入框
        emailInput.value = '';
    }
}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 10:43:24  更:2021-09-05 10:43:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:34:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码