JS-DOM对象--节点--添加图片的操作

原生实现dom生成图片 一、需求背景 最近开发时,有遇到这么一个需求,要将一个有大量图表/文字/图片的页面导出为pdf(该页面的图表以及文字、图片是可动态配置的),目前主流的方式都是用htmlCanvas插件做的,我们一向的原则是少用插件多用原生,所以最后和产品沟通,导出为图片,因为图片可以用原生实现,并且默认单页,效果也非常好。 二、实现方式 实现方式参考了张鑫旭老师的一篇文章借助SVG forginObject实现DOM转图片 ,在此基础上做了一些细节的调整。 这种方式基本的原理,就是将dom转换成xml结构,然后放. 阅读详情

JS-DOM对象
DOM:Document Object Model 文档对象模型
要实现页面的动态交互效果,bom 操作远远不够,需要操作 html 才是核心。如何操作htm,就是 DOM。简单的说,dom 提供了用程序动态控制 html 接口。DOM即文档对象模型描绘了一个层次化的节点树,运行开发人员添加、移除和修改页面的某一部分。dom 处于javascript 的核心地位上。
每个载入浏览器的 HTML 文档都会成为 Document 对象。Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。Document 对象是 Window 对象的一部分,可通过window.document 属性对其进行访问。

节点
加载 HTML 页面时,Web 浏览器生成一个树型结构,用来表示页面内部结构。DOM 将这种树型结构理解为由节点组成,组成一个节点树。对于页面中的元素,可以解析成以下几种类型的节点:
节点类型 HTML内容 例如
文档节点 文档本身 整个文档 document
元素节点 所有的HTML元素 、

、


属性节点 HTML元素内的属性 id、href、name、class
文本节点 元素内的文本 hello
注释节点 HTML中的注释

html -->文档节点
div -->元素节点
title -->属性节点
测试 Div -->文本节点
下面举个栗子:
在这里插入图片描述
点击展示图片,表格的下方弹出相应的图片,本次只显示一张图片,下面附上部分代码,“取消”这个功能目前还没有实现,有感兴趣的大神请赐教!

 <script type = "text/javascript">
        var ball = new Array();
        ball[0] = {name:"孙悟空",skill:"界王拳",headimg:"/img/0.jpg"};
        ball[1]={ name:"比克大魔王",skill:"魔封波",headimg:"/img/1.jpg"};
        ball[2]={name:"天津饭",skill:"太阳拳",headimg:"/img/2.jpg"};
        ball[3]={name:"孙悟饭",skill:"龟派气功",headimg:"/img/3.jpg"};
    </script>
</head>
<body>
    <button "show();">展示</button>
    <table width="85%" align="center" border="1px" id="ta1" >
        <tr style="background: lightgreen" >
            <th align="center">名称</th>
            <th align="center">技能</th>
            <th align="center">操作</th>
        </tr>
    </table>
    <img src="" alt="" id="img">
    <div id="container"></div>
    <script>
         var show =function(){
            var mytable = document.getElementById("ta1");
             //遍历
             for(var i=0;i<ball.length;i++){
                 //创建新的tr
                 var mytr = document.createElement("tr");
                 mytr.innerHTML+="<td>"+ball[i].name+"</td>";
                 mytr.innerHTML+="<td>"+ball[i].skill+"</td>";
                 mytr.innerHTML+="<td><a href='javascript:show_"+i+"();'>展示图片</a>&nbsp;<a href='javascript:del();'>取消</a></td>";
                 
                 //将tr追加到表格中
                 mytable.appendChild(mytr);
             }
         }
        //展示图片
        function show_0(){
            img.style.display="block";
            img.style.width="50%";
            img.src="img/0.jpg";
        }
         function show_1(){
             img.style.display="block";
             img.style.width="50%";
             img.src="img/1.jpg";
         }
         function show_2(){
             img.style.display="block";
             img.style.width="50%";
             img.src="img/2.jpg";
         }
         function show_3(){
             img.style.display="block";
             img.style.width="50%";
             img.src="img/3.jpg";
         }```



jsMind思维导图整合Easyui的右键菜单 为了操作方便,添加了一个右键菜单进入,也适当的添加了动画,让操作变得圆滑。 立即下载

相关推荐

Vivado 2023.1及更早版本永久License全功能解锁:HLS、System Generator等IP核使用详解

本文深入解析Vivado 2023.1及更早版本的全功能许可证,详细指导如何解锁HLS、System Generator等高级IP核。通过许可证类型对比、功能验证方法和实战应用指南,帮助FPGA开发者充分利用Vivado工具套件,提升复杂系统设计和算法加速的效率。

weixin_31286719的博客 379

dom的创建和插入节点

创建 var innerDiv = document.createElement("div") 创完还要插入到元素里面 插入 var boxEl = document.querySelector('.box'); var innerDiv = document.createElement("div") boxEl.parentNode.insertBefore(innerDiv, boxEl)//在boxEl的前面插入,如果要在最后就把boxEl换为null 几种简单的插入方法 在元

m0_60121436的博客 731

STM32F103C8T6+HX711实战:从零打造智能体重秤(附OLED显示与语音播报)

本文详细介绍了基于STM32F103C8T6微控制器和HX711称重模块,从零构建智能体重秤的完整实战教程。内容涵盖硬件选型、系统架构、驱动编写、数据滤波校准算法,并实现了OLED显示与语音播报功能。该项目是嵌入式学习的综合性实践,尤其适合作为毕业设计课题,帮助开发者掌握传感器应用、数据处理及人机交互等核心技能。

weixin_28285943的博客 517

js编程题练习

笔试编程题,要先手写代码思路,然后用语言加代码实现 <styletype="text/css"> #list{background:red;width:100px;height:100px;padding:0;} li{list-style:none} #list.red{background...

QiuShuiFuPing的博客 743

pytorchDataLoader中调整数据长度不一致问题(lstm等)

数据长度不一致 用pytorch做rnn的时候,如果输入数据不一样长,可以用两种方式解决。 一种是自定义collate方法, #自定义collate_fn dataloader.DataLoader(dataset,4,True,collate_fn=my_collate) 然后里面写数据和标签载入方式即可 def my_collate(batch): data = [item[0] for item in batch] target = [item[1] for item in batc

weixin_48174100的博客 7770

STM32CubeMx配置串口使用printf函数打印数据(HAL库开发)

HAL库开发串口,打印printf

m0_58832575的博客 6289

VUE框架使用JS动态绑定背景图片

VUE框架使用JS动态绑定背景图片 前言 以下讲述如何使用vue框架动态绑定一个html标签的背景图片,两种情况:url链接、项目资源。 文章目录VUE框架使用JS动态绑定背景图片前言一、动态绑定url链接1.1 代码1.2 知识点二、动态绑定项目资源2.1 代码2.2 知识点总结 一、动态绑定url链接 1.1 代码 document.getElementById("元素id").style.backgroundImage = 'url(' + url链接 + ')'; 1.2 知识点 通过ge

cheer 1424

手把手教你 Ubuntu 24.04 离线安装 Ollama

本文介绍 Ubuntu 下离线安装 Ollama 并使用 Ollama 部署 llama3.1-70b 大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1018

JS20---JS中添加矢量图标 iconfont

①阿里矢量图标库中找到你所需要的图标,添加至购物车,然后选择添加至项目 确定键后下载至本地,是一个压缩包形式 ②将压缩后的文件复制到编程文件中(不可以直接移动文件到编程文件中) ③header中写link 将图标文件链接到编程代码中 <link rel="stylesheet" href="icon/iconfont.css"> ④使用字体图标 <span class="ico...

XIAO_YuBaby的博客 1553

PCL 基于法向距离的对应点获取

提出了一种基于法向量欧氏距离的点云配准方法。详细推导了法向量距离计算公式,并给出具体计算流程。在代码实现部分,采用PCL库完成了点云法向量计算和对应关系估计,通过可视化验证了算法有效性。实验结果表明,该方法能够准确获取点云间的对应关系,为后续点云配准奠定了基础。

点云侠的博客 226

【牛客算法】小美的数组删除

本文分析了小美数组删除问题的解法,提出了一种逆向遍历求MEX的优化算法。该算法通过从数组末尾开始遍历,逐步构建子数组集合,利用MEX的单调性和增量更新特性,在O(n)时间复杂度内计算所有可能删除方案的最小代价。关键设计包括:1)逆向遍历实现MEX状态继承;2)利用HashSet快速判断元素存在;3)动态比较删除前j个元素和删除整个子数组的代价。算法空间复杂度为O(n),适用于大规模数据。代码实现简洁高效,已被验证为同类问题的最优解之一。

字节卷动 1336

JavaScript Bom和Dom

文档对象模型DOM (Document Object Model) 是一种编程接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。DOM 将文档解析为一个由节点和对象(包括 HTML 元素,如等)组成的结构化树状图,这使得编程语言(如 JavaScript)能够操作这些元素。Dom操作和Bom操作BOM 操作:这些操作与浏览器窗口和其它环境特性有关。

weixin_48183870的博客 962

高速特征金字塔多角度旋转模板匹配(工业零部件缺陷检测C++ Opencv版)

博主在性能较好的笔记本上测试算法全部执行效果大约为45ms,在一般配置的笔记本上博主在性能较好的笔记本上测试算法全部执行效果大约为130ms。下图即为实际检测效果。本文最后附有完整代码:Qt版和MFC版本(可直接运行)。...

认真努力,做一只会飞的毛毛虫。 5547

javascript节点常用的一些方法

文章目录节点的值属性**方法**节点操作其他 节点的值 对于元素节点,nodeType=1 对于文本节点,nodeType=3 对于属性节点,nodeType=2 对于注释元素,nodeType=8 对于文档元素,nodeType=9 属性 /* Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回次节点的数据类型 documentElement 返回文档的根元素(可读写) firstChild 返回

weixin_45936263的博客 355

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

JavaScript.04.DOM树

JavaScript.04.DOM树

Champion_me的博客 780

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

dom刷新局部元素_046 JavaScript中的BOM和DOM

1. BOM和DOM入门(1) 请说出DOM对象和BOM对象的关系BOM对象:Browser Object Module浏览器对象模型。包含history、navigator、document、location、screen五部分。其中document就指的是DOM:Document Object Module文档对象模型。(2) 请说出BOM对象中包含的对象内容包含history、navigat...

weixin_29116603的博客 391

js常用总结

1.var dl = this.parentNode.parentNode; //返回<button>元素父节点的父节点 dl 2.var listObj = JSON.parse(listStr); //数组 使用 JSON.parse() 方法将数据转换为 JavaScript 对象。或从一个字符串中解析出json对象 HTML DOM getAttribute() 方...

qq_42058441的博客 207

JavaScript学习笔记(六)(Jquery入门)

JavaScript学习笔记(六)一、jQuery是什么?二、jQuery的安装三、载入事件区别四、jQuery对象和DOM对象的区别DOM对象和Jquery对象互转五、选择器5.1 jQuery的选择器(1)基本选择器(2)层级选择器(3)筛选选择器鼠标事件 一、jQuery是什么? jQuery是将JavaScript的操作进行了封装,对外提供了API,我们可以通过API,写少量的代码做更多的事情(Write Less Do More)。 jQuery是一个工具类(类似于Java的封装类),jQu

qq_47267252的博客 295

javascript DOM操作 第19节

<html> <head> <title>DOM对象</title> <script type="text/javascript"> function $(id) { return document.getElementById(id); } function insertT...

weixin_30670925的博客 63

JavaScript学习 - 基础(八) - DOM 节点 添加/删除/修改/属性值操作

html代码: <!--添加/删除/修改 --> <div id="a1"> <button id="a2" onclick="add()">add</button> </div> <div id="a3"> <button onclick="del()">del&lt...

weixin_30636089的博客 74

【JavaScript 】DOM操作快速入门

相信我,十分钟,快速入门JavaScript dom操作。

BugMan的博客 2693

JavaScript DOM 核心操作:从内容到节点的实战指南

DOM 是前端开发操控页面的核心工具,本文聚焦 DOM 中元素内容、属性、样式的读写逻辑,结合表单、图片等实战场景解析操作方法;同时详解节点的增删改流程,覆盖从基础语法到最佳实践的全维度内容,帮助开发者快速掌握动态页面开发的核心技能。

HANhylyxy的博客 7254

JavaScript DOM操作(超详细)

在JavaScript中,"-"表示减号,如果样式属性名称中带有"-"号,则要省去"-",并且"-"后的首字母要大写,因此font-size对应的style对象的属性名称应为fontSize.微软公司为每个元素提供了一个currentStyle对象,它包含了所有元素的style对象的特性和任何未被覆盖的CSS规则的style特性,currentStyle对象与style对象的使用方式一样,语法格式如下所示。使用style属性和className属性设置元素的样式,想要获取某个元素的属性值,应该如何实现呢?

wu_ry的博客 3330

JavaScript DOM基础

本文简单的讲解了JavaScript的DOM基础,适合初学的朋友们,如果本文对你有所帮助请三连支持博主,你的支持是我更新的动力。以下是本篇文章正文内容一个完整的JavaScript实现由以下3个不同部分组成核心(ECMAScript)语言核心部分,描述了该语言的语法和基本对象。文档对象模型(DocumentObjectModel,DOM)网页文档操作标准,描述处理网页内容的方法和接口。浏览器对象模型(BOM)客户端和浏览器窗口操作基础,描述与浏览器进行交互的方法和接口。编程接口。......

程序员柒的博客 2420

JavaScript之DOM操作获取元素、事件、操作元素、节点操作

什么是 DOM? 文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式 DOM 树 文档:一个页面就是一个文档,DOM 中使用 document 表示 元素:页面中的所有标签都是元素,DOM 中使用 element 表示 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node.

weixin_53155105的博客 2949

【JavaScript】DOM元素操作节点增删改查

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言(HTML或XML)的标准编程接口。通过这些DOM接口可以改变网页的内容、结构和样式。网页中的所有内容都是节点(标签、属性、文本、注释等等),在DOM中,节点使用Node来表示。HTML DOM树中的所有节点均可通过JavaScript进行访问,所有HTML元素(节点)均可被修改,也可以创建或删除。

万维网连五洲,二进制写尽天下事,喜欢结识新伙伴寻找志同道合的朋友,欢迎一起探讨学习 2716
下一篇: JQuery对象--JQuery选择器--JQuery DOM操作--JQuery 事件
Cap绛琛tain
博客等级 码龄8年 4粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值