Debug-023-Document.createElement()的使用

embedded/2024/10/18 22:37:08/

 Document.createElement()

 document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用。

appendChild() 方法在节点的子节点列表末添加新的子节点。

insertBefore() 方法在节点的子节点列表任意位置插入新的节点。

用途举例:用这个来实现手动唤起文件上传入口

// 手动调取图片本地上传入口
function onUploadImgLocal(row:any) {console.log('importBillExcel', row)const input = document.createElement('input')input.type = 'file'input.accept = '.jpeg, .png,  .jpg' // 限制选择的文件类型为 .jpg, .png,  .jpginput.style.display = 'none'document.body.appendChild(input)input.click()input.onchange = (e:any) => {const file = e.target.files[0] // 获取文件对象console.log('eeeeee', e, file)// handleExceed([file])}
}
  1. 创建隐藏的文件输入元素:代码首先通过document.createElement创建一个input元素,并设置其类型为file,接受的文件类型为.jpeg, .png, .jpg,然后将其隐藏并添加到document.body中。

  2. 模拟点击文件输入:通过input.click()方法,模拟用户点击文件输入元素,从而唤起文件选择界面。

  3. 处理文件选择变化:通过input.onchange事件监听器,当用户选择文件后,执行箭头函数。该函数从事件目标的files属性中获取第一个文件(e.target.files[0]),并将其传递给handleExceed函数进行进一步处理,同时在控制台打印相关信息。
     

    // 创建一个文件输入元素
    const fileInput = document.createElement('input');
    fileInput.type = 'file';
    fileInput.accept = '.jpeg, .png, .jpg'; // 限制选择的文件类型// 添加到DOM中
    document.body.appendChild(fileInput);// 添加点击事件,例如触发文件选择对话框
    fileInput.addEventListener('click', () => {// 可以在这里添加一些额外的逻辑,比如显示提示信息
    });// 监听文件选择变化
    fileInput.addEventListener('change', (event) => {const files = event.target.files; // 获取选中的文件列表if (files && files.length > 0) {// 处理选中的文件console.log('文件已选择:', files[0]);// 这里可以添加更多处理文件的逻辑}
    });

document对象的一些常用方法,并且补充了一些说明和示例。以下是10个常用的方法:

//创建一个新的元素节点。
const newElement = document.createElement('div');//将一个节点添加到指定父节点的子节点列表的末尾。
document.body.appendChild(newElement);//通过ID获取文档中的一个元素。
const elementById = document.getElementById('myId');//通过类名获取文档中的元素集合。
const elementsByClass = document.getElementsByClassName('myClass');//通过标签名获取文档中的元素集合。
const elementsByTag = document.getElementsByTagName('p');//返回文档中匹配指定CSS选择器的第一个元素。
const firstMatch = document.querySelector('.myClass');//返回文档中匹配指定CSS选择器的所有元素的NodeList对象。
const allMatches = document.querySelectorAll('.myClass');//创建一个文本节点
const textNode = document.createTextNode('Hello, world!');//从DOM树中删除一个子节点。
document.body.removeChild(newElement);//向元素添加事件监听器。
input.addEventListener('change', (e) => {const file = e.target.files[0];console.log('Selected file:', file);
});


http://www.ppmy.cn/embedded/100301.html

相关文章

Java设计模式之中介者模式详细讲解和案例示范

Java设计模式之中介者模式详细讲解和案例示范 在软件设计中,中介者模式(Mediator Pattern)是一种行为设计模式,用于减少多个对象和类之间的通信复杂性。通过引入中介者对象,各个对象之间不需要直接互相引用,而是通过中介者进行通信,从而使系统更易于扩展和维护。本文将…

【Docker】以思源笔记为例,谈谈什么是端到端加密

本文首发于 ❄️慕雪的寒舍。 链滴(思源笔记社区)里面有不少老哥似乎不太了解思源使用的端到端加密功能,以及云同步功能背后的机制。本文将以思源笔记为例,谈谈什么是端到端加密,以及思源的同步功能中用到了什么计算机…

openGL文本渲染FreeType常见问题

这里写自定义目录标题 源码下载及编译编译生成的dll及lib使用FreeTypeinclude头文件加载附加包含目录 lib文件加载添加lib文件位置添加lib文件下的lib名 字体使用代码编写代码初始化中文字体输出简单封装 存在问题列表问题1:无法打开stddef.h其他问题后续更新 源码下…

拦截器实现 Mybatis Plus 打印含参数的 SQL 语句

1.实现拦截器 package com.sample.common.interceptor;import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; import or…

React+Vis.js(06):vis.js修改选中节点的样式和边的样式

文章目录 初始化知识图谱选中节点修改节点背景颜色选中节点修改节点文字颜色未选中节点恢复节点背景颜色和文字颜色修改当前选中节点的边的颜色初始化知识图谱 创建network.js组件,来初始化原始知识图谱: import React, {useRef, useEffect} from "react"; impor…

【K8s】Java项目部署时为什么要用k8s?

目录 重要意义一、高可用性与弹性伸缩二、简化部署与管理三、资源隔离与安全四、容器编排与服务发现 部署步骤准备工作创建 Docker 镜像将镜像推送到镜像仓库创建 Kubernetes 资源对象部署到 Kubernetes 集群 常见问题 在 Java 项目部署中使用 Kubernetes(k8s&#…

GPT-4、Claude 3 Opus 和 Gemini 1.0 Ultra 挑战控制工程的新领域

介绍 论文地址:https://arxiv.org/abs/2404.03647 近年来,GPT-4、Claude 3 Opus 和 Gemini 1.0 Ultra 等大规模语言模型(LLM)迅速发展,展示了它们解决复杂问题的能力。LLM 的这些发展在多个领域都有潜在的应用前景。…

Burp Suite、Wireshark与Fiddler:三款网络工具深度解析与比较

在网络安全和网络开发的领域,有三款非常实用的工具:Burp Suite、Wireshark和Fiddler。它们各自具有独特的功能和优势,适用于不同的场景和需求。本文将深度解析这三款工具,并进行详细的比较,帮助读者更好地了解并选择适…