JS项目合集-DOM相关操作

【JS交互篇】DOM操作基础 DOM(Document Object Model)文档对象模型,用来表示和操作html或xml文档内容的基础API;当网页被加载时,浏览器会创建页面的文档对象模型DOM,而DOM模型被构造为对象的树(Dom Html Tree);DOM包含了所有的html标签元素、文本字符串、甚至是html注释;利用DOM中的属性和方法,使程序有能力动态的访问和更新文档中的内容、结构以及样式,这样就使得页面的交互性大大增强;原生JavaScipt案例合集JavaScript +DOM基础。 阅读详情

JS项目合集-DOM相关操作

  • 题目来源:B站视频JS从入门到精通

1.插入元素

题目描述

点击按钮将文本框中的输入内容插入到第一行中
在这里插入图片描述

题目代码

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <script>
   window.onload=function(){
    var otext=document.getElementById("txt");
    var oul=document.getElementById("ul1");
    var obut=document.getElementById("button1");
    obut.onclick=function(){
    var ali=document.getElementsByTagName("li");
    var oli=document.createElement("li");
    oli.innerHTML=otext.value;
    if (ali.length>0){
     oul.insertBefore(oli,ali[0]);
     }
    else{
     oul.appendChild(oli);
    };
    };
   }
  </script>
 </head>
 <body>
  <input id="txt" type="text"/>
  <input id="button1" type="button" value="创建行"/>
  <ul id="ul1">
  </ul>
 </body>
</html>
  • 当行数为零时,insertbefore兼容性不好,此时的appendChild的功能效果是一样的。

2.表格隔行变色

题目描述

建立表格,通过JS建立隔行变色样式,并使得鼠标移入移出时对应行高亮。
在这里插入图片描述

题目代码

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <script>
   window.onload=function(){
    var otable=document.getElementById('tab1');
    var oldColor="";
    for (var i=0;i<otable.tBodies[0].rows.length;i++){
     otable.tBodies[0].rows[i].onmouseover=function(){
      oldColor=this.style.background;
      this.style.background="yellow";
     }
     otable.tBodies[0].rows[i].onmouseout=function(){
      this.style.background=oldColor;
     }
     if (i%2==0){
      otable.tBodies[0].rows[i].style.background='';
     } 
     else{
      otable.tBodies[0].rows[i].style.background='grey';
     }
    }
   }
  </script>
 </head>
 <body>
  <table  id="tab1" border="1" width="500">
   <thead>
    <td>ID</td>
    <td>姓名</td>
    <td>年龄</td>
   </thead>
   <tbody>
    <tr>
     <td>1</td>
     <td>张三</td>
     <td>23</td>
    </tr>
    <tr>
     <td>2</td>
     <td>李四</td>
     <td>25</td>
    </tr>
    <tr>
     <td>3</td>
     <td>王五</td>
     <td>27</td>
    </tr>
    <tr>
     <td>4</td>
     <td>李明</td>
     <td>29</td>
    </tr>
    <tr>
     <td>5</td>
     <td>韩梅</td>
     <td>21</td>
    </tr>
   </tbody>
  </table>
 </body>
</html>
  • 使用oldColor标记每行的原有颜色,防止鼠标移入移出的操作覆盖掉原有的隔行变色效果

3.表格添加删除

题目描述

建立表格,实现点击按钮的添加操作,以及点击删除的删除对应行操作
在这里插入图片描述

题目代码

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title></title>
  <script> 
   window.onload=function(){
    var otab=document.getElementById("tab1");
    var oname=document.getElementById("name");
    var oage=document.getElementById("age");
    var obut=document.getElementById("but1");
    var adel=document.getElementsByTagName("a");
    var id=otab.tBodies[0].rows.length+1;
    obut.onclick=function(){
     var otr=document.createElement("tr");
     var otd1=document.createElement("td");
     otd1.innerHTML=id++;
     otr.appendChild(otd1);
     var otd2=document.createElement("td");
     otd2.innerHTML=oname.value;
     otr.appendChild(otd2);
     var otd3=document.createElement("td");
     otd3.innerHTML=oage.value; 
     otr.appendChild(otd3);
     var otd4=document.createElement("td");
     otd4.innerHTML='<a href="javascript:;">删除</a>';
     otr.appendChild(otd4);
     otab.tBodies[0].appendChild(otr);
     for (var i=0;i<adel.length;i++){
      adel[i].onclick=function(){
       otab.tBodies[0].removeChild(this.parentNode.parentNode)
      }
     }
     
    }  
    
    
   };
  </script>
 </head>
 <body>
  姓名:<input id="name" type="text"/>
  年龄:<input id ="age" type="text"/>
  <input id="but1" type="button" value="添加"/>
  <table  id="tab1" border="1" width="500">
     <thead>
      <td>ID</td>
      <td>姓名</td>
      <td>年龄</td>
   <td>操作</td>
     </thead>
     <tbody>
      <tr>
       <td>1</td>
       <td>张三</td>
       <td>23</td>
    <td></td>
      </tr>
      <tr>
       <td>2</td>
       <td>李四</td>
       <td>25</td>
    <td></td>
      </tr>
      <tr>
       <td>3</td>
       <td>王五</td>
       <td>27</td>
    <td></td>
      </tr>
      <tr>
       <td>4</td>  
       <td>李明</td>
       <td>29</td>
    <td></td>
      </tr>
      <tr>
       <td>5</td>
       <td>韩梅</td>
       <td>21</td>
    <td></td>
      </tr>
     </tbody>
    </table>
   </body>
  </html>
  
 </body>
</html>
  • 为防止ID项重复,使用id变量进行表格第一列的填充。

4.表格搜索

题目描述

实现不区分大小写,支持模糊搜索与多关键词搜索的表格
在这里插入图片描述

题目代码

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <script>
   window.onload=function(){
    var otab=document.getElementById("tab1");
    var oName=document.getElementById("name");
    var oBut=document.getElementById("but1");
    oBut.onclick=function(){
     for (var i=0;i<otab.tBodies[0].rows.length;i++){
      var str1=otab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();
      var str2=oName.value.toLowerCase();
      var arr=str2.split(' ');
      otab.tBodies[0].rows[i].style.background="";
      for (var j=0;j<arr.length;j++){ 
       if (str1.search(arr[j])!=-1){
        otab.tBodies[0].rows[i].style.background="yellow";
       }  
      /* else{
	 otab.tBodies[0].rows[i].style.background="";
	}*/
      }
      
     }
    }
   }
  </script>
    
 </head>
 <body>
  姓名:<input id="name" type="text"/>
  <input id="but1" type="button" value="搜索"/>
  <table  id="tab1" border="1" width="500">
     <thead>
      <td>ID</td>
      <td>姓名</td>
      <td>年龄</td>
   <td>操作</td>
     </thead>
     <tbody>
      <tr>
       <td>1</td>
       <td>Lily</td>
       <td>23</td>
    <td></td>
      </tr>
      <tr>
       <td>2</td>
       <td>李四</td>
       <td>25</td>
    <td></td>
      </tr>
      <tr>
       <td>3</td>
       <td>王四</td>
       <td>27</td>
    <td></td>
      </tr>
      <tr>
       <td>4</td>  
       <td>李明</td>
       <td>29</td>
    <td></td>
      </tr>
      <tr>
       <td>5</td>
       <td>韩梅</td>
       <td>21</td>
    <td></td>
      </tr>
     </tbody>
    </table>
 </body>
</html>
  • search()函数帮助实现模糊搜索,split()函数切分多个关键词帮助实现多关键词搜索。
  • 注释部分的else语句需要拿到循环外侧,否则后面关键词搜索结果会覆盖前面的结果。

5.表格排序

题目描述

将ID乱序的表格按照ID大小重新排序。
在这里插入图片描述

在这里插入图片描述

题目代码

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <script>
   window.onload=function(){
    var otab=document.getElementById("tab1");
    var oBut=document.getElementById("but1");
    //var otr=document.getElementsByTagName("tr");
    
    oBut.onclick=function(){
     var arr=[];
     for(var i=0;i<otab.tBodies[0].rows.length;i++){
      arr[i]=otab.tBodies[0].rows[i];
     }
     arr.sort(function(li1,li2){
      var s1=parseInt(li1.cells[0].innerHTML); 
      var s2=parseInt(li2.cells[0].innerHTML);
      return s1-s2;
     });
     for (var i=0;i<arr.length;i++){
      otab.tBodies[0].appendChild(arr[i]);
     }
    }
   }
  </script>
 </head>
 <body>
  <input id="but1" type="button" value="排序"/>
  <table  id="tab1" border="1" width="500">
     <thead>
      <td>ID</td>
      <td>姓名</td>
      <td>年龄</td>
   <td>操作</td>
     </thead>
     <tbody>
      <tr>
       <td>3</td>
       <td>Lily</td>
       <td>23</td>
    <td></td>
      </tr>
      <tr>
       <td>2</td>
       <td>李四</td>
       <td>25</td>
    <td></td>
      </tr>
      <tr>
       <td>4</td>
       <td>王四</td>
       <td>27</td>
    <td></td>
      </tr>
      <tr>
       <td>1</td>  
       <td>李明</td>
       <td>29</td>
    <td></td>
      </tr>
      <tr>
       <td>5</td>
       <td>韩梅</td>
       <td>21</td>
    <td></td>
      </tr>
     </tbody>
 </body>
</html>
  • appendChild() 分为从原位置删除、插入尾部两个部分,可用作排序。
前端项目-domready.zip 前端项目-domready,modern domready 立即下载

相关推荐

JavaScript-DOM:JS学习者使用JavaScript DOM的最小项目

JavaScript-DOM 使用JavaScript的CRUD项目。

常见Dom操作有哪些?

这里是修真院前端小课堂,本篇分析的主题是 【 常见Dom操作有哪些?】 大家好,我是IT修真院深圳分院第02期学员,一枚正直善良的web程序员。 今天给大家分享一下,修真院官网JS任务2中常见DOM操作有哪些? 1.背景介绍 DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口)。DOM描绘了一个层次化的节点树,允许开发人员添加、移除和修改页面的某一部...

IT修真院:初学者转行到互联网的聚集地 1622

HTML DOM的练习

html当中DOM知识的小练习。 节点练习。 html当中DOM知识的小练习。 html当中DOM知识的小练习。 html当中DOM知识的小练习。 html当中DOM知识的小练习。html当中DOM知识的小练习。

2020-10-23Dom小项目

一滑块跟随鼠标移动 <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div { width: 200px; height: 2

html_xiaojiu的博客 1257

别再傻傻分不清!一文讲透电子产品‘冲击’与‘碰撞’试验的区别与选用(附GB/T 2423标准解读)

本文详细解析了电子产品可靠性测试中冲击与碰撞试验的核心区别与应用场景,结合GB/T 2423标准提供实用指南。冲击测试模拟瞬时高强度事件(如跌落),而碰撞测试针对重复性力学环境(如运输颠簸)。通过参数对比和标准解读,帮助研发人员精准选择测试方案,提升产品可靠性验证效率。

weixin_42665255的博客 267

KBS投稿全流程拆解:从模板准备到条件接收的实战指南

本文详细拆解了KBS期刊投稿的全流程,从模板准备、投稿系统操作到返修策略和条件接收。重点介绍了Cover Letter撰写技巧、Latex模板选择、审稿周期管理以及返修文件的系统准备方法,帮助研究者高效完成KBS投稿并提升接收概率。

weixin_26938645的博客 704

DOM常用方法以及项目

js留言板项目实战

天天学安全专属博客 853

SAP 深入理解库存

当 某个期间发生货物移动的时候,系统在更新mard数据的之前(这个表是实时更新的),会检查此笔业务过账期间和mard里对应记录的期间是否一致,也就是 看这是不是本期间第一笔移动。其二,我们不能保证这定期的作业的确定性,硬件维护、系统性能都可能使这预定的“时刻”出现偏差,如果某一次没能抓取该时刻的库存,对整个报表来说,是数据的缺失;中,当某一期间(Period)的第一项操作更新了物料数量或价值,则SAP系统会向表MBEWH写入一条记录,以第一项操作之前的余额、价格控制为标准。这对于业务数据量大的。

matinal 當冬夜漸暖 。公众号:matinal 3622

DOM可以做什么?(一)

隐藏和显示 隐藏段落显示段落   上面的按钮可以控制我的显示和消失哦。这个特效就是通过JavaScript配合HTML DOM来完成的。代码如下: JavaScript代码:   function hide(){   document.getElementById("hiddenTest").style.display = "none" ;  }   function

刘海闯的专栏 1452

分子模拟入门教程 | 低调使用 建议收藏

该方法只需要原子的核电荷和少数模拟的环境参数作为输入,所有的性质都是通过求解薛定谔方程得到的,不需要使用任何经验参数。经典的原子水平的分子模拟已经成为提高我们对材料科学和生命系统中分子过程理解的最流行的方法之一。全原子模拟是一种非常强大的以原子分辨率呈现信息的方法,因为在原子模拟中,一个粒子代表一个特定的原子。随着计算机硬件和模拟技术的快速发展,分子模拟不仅可以解决基本的、常规的化学问题,还可以应用于各种复杂体系。然而,由于问题的复杂性以及严重依赖于现象的现实情况,最好是逐案确定合适的模拟方法。

pysonger的博客 783

CANopen中SDO、PDO字典以及COB-ID理解

CANopen SDO PDO

sunarmy的专栏 2万+

DOM对象能干什么?

什么是DOM对象?DOM对象其实就是一棵由元素对象组成的大树。另外要特别强调一点,浏览器解析网页的顺序是从上到下的。所以有时要注意js代码与被控制元素对象的前后关系。处理DOM对象时,要确保网页完全加载后再执行,这一点至关重要,因为网页没有加载完的话,那么DOM对象就不会存在,因为它是一棵大树,树还没长成自然就不会有DOM对象啦。 1.获取内容(文件或HTML) &amp;lt;!doctype html...

weixin_40763897的博客 2063

ubuntu恢复分区表——testdisk

testdisk恢复ubuntu分区表testdisk介绍安装testdisk使用testdisk恢复分区表 testdisk介绍 testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,也经常被用来恢复被误删的文件。 安装testdisk 如果系统分区表被删除,需要使用ubuntu的启动盘,选择try ubnutu模式进入试用系统。 1、可以直接在终端安装testdisk: sudo apt-get install testdisk 通过命令直接打开testdisk: t

ZNestor的博客 6459

原生JS中DOM节点相关API合集

原生JS中DOM节点相关API合集 节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Text或Comment节点的文本值,只读 Node.textContent //返回当前节点和它的所有后代节点的文本内容,可读写 Node.baseURI //返回当前网页的绝对...

大灰狼的小绵羊哥哥的博客 318

YOLOv11 改进 - 特征融合 | SSFF+TPE+CPAM 协同,ASF-YOLO 三重模块破解密集小目标分割难题

本文介绍了基于注意力尺度序列融合的ASF - YOLO模型在YOLOv11中的结合应用。ASF - YOLO旨在实现准确快速的细胞实例分割,结合空间和尺度特征,引入SSFF模块增强多尺度信息提取能力,TFE模块融合不同尺度特征图,CPAM整合前两者以关注信息丰富通道和小物体。我们将ASF - YOLO相关模块集成进YOLOv11,替代原有的部分特征融合模块,实现更高效的特征提取与融合。实验证明,YOLOv11 - ASFYOLO在细胞实例分割任务中表现出色,展现了该模型在深度学习中的广泛应用前景。

魔改工程师的博客 1257

YOLO十年演进:从CNN到Transformer再到MoE,我看懂了2026年目标检测的落地风向标

技术永远是为业务服务的,能解决真实问题的技术,才是有价值的。YOLO的十年演进,从CNN到Transformer再到MoE,从来都不是学术上的炫技,而是一步一步解决工业落地的痛点:从让实时检测成为可能,到解决复杂场景的漏检误检,再到打破精度和算力的死局,每一步都踩在了工业落地的真实需求上。很多新入行的朋友,总喜欢追新,今天换Transformer,明天堆MoE,觉得模型越新、参数越大,就越厉害。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 748

原生javascript中的DOM操作合集(转载)(精华)

原生JS中DOM节点相关API合集 节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Text或Comment节点的文本值,只读 Node.textContent //返回当前节点和它的所有后代节点的文本内容,可读写 Node.baseURI //返回当前网页的绝对...

友人C君的博客 522

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

原生js中DOM相关操作合集

节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Text或Comment节点的文本值,只读 Node.textContent //返回当前节点和它的所有后代节点的文本内容,可读写 Node.baseURI //返回当前网页的绝对路径 ​ Node.ownerDocume...

weixin_44827431的博客 144

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JS——DOM节点操作

主要包括 创建添加插入替换删除克隆 创建:document.createElement('标签名') 创造一个指定标签元素,返回的是一个创建好的元素节点、 如果浏览器无法识别标签名就会生成一个未知HTML元素 一般流程---- 1创建空对象(只能用document调用) 2为空元素添加关键属性和内容 3将空元素加载到dom树中 添加:父节点.appendChild(子节点) 把这个子节点追加到父节点下所有子元素的末尾,如果加入的子节点已经存在DOM树中,那么就会改变该子节点的位置 .

chihuomiao的博客 1444

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JavaScript中的DOM元素的相关知识点

JavaScript中的DOM元素的相关知识点前言一、DOM节点的种类二、查找元素的方法1.获取body元素2.通过name属性获取元素三、层次节点属性四、节点操作五、当获取到的元素是空白节点时,需要先删除空白节点再去获取相应的节点六、Document中有一些遗留的属性和对象合集七、DOM的一些拓展内容 前言 Javascript中的核心便是DOM元素的操作,BOM,事件event,下面我将我所整理的相关dom操作的笔记贴出来 一、DOM节点的种类 共分为元素节点,文本节点,属性节点 二、查找元素..

jkaank的博客 238
上一篇: JS小项目实践-定时器应用
下一篇: JS小项目合集-运动
莉亚学AI
博客等级 码龄8年 4粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值