• HTML DOM 可以可以对HTML中的元素进行删除,增加的操作,要操作HTML DOM可以使用JavaScript的语言对HTML DOM进行访问.
  • 原html文件
<html><head><title>欢迎页面!</title><meta charset="utf-8"/></head><body><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><div><span id="10">Hello World!</span></div></body>
</html>
  • 使用getElementsByTagName()方法取得所有span元素,
 <script type="text/javascript">window.onload = function   (){//取得"span元素var spanELes = document.getElementsByTagName("span");}</script>
  • 动态设置元素样式,假设有如下样式,将偶数位的span元素设置为init0样式,将奇数位的span设置为init1的样式
<style type="text/css">.init0{color:green;font-size:20px;display:block;}.init1{color:red;font-size:20px;display:block;}
</style>
  • 循环得到的span节点集合,设置每个节点的class属性
 <script type="text/javascript">window.onload = function(){//取得"span元素var spanELes = document.getElementsByTagName("span");for(var x = 0; x < spanELes.length; x ++){spanELes[x].setAttribute("class","init"+(x%2));}}</script>
  • 页面运行效果

删除元素

  • 再删除元素的时候需要注意的是,如果使用getELementsByTagName()方法得到一个节点的集合,如果使用removeChild()方法删除集合中的一个元素,则这个集合的长度会发生改变.
  • 假设现在的html中的内容变为如下, 如果此时要删除所有带有"del"内容的span元素
<html><head><title>欢迎页面!</title><meta charset="utf-8"/></head><body><span>Hello World! del</span><span>Hello World! del</span><span>Hello World!</span><span>Hello World!</span><span>Hello World del !</span><span>Hello World!</span><span>Hello del World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello World!</span><span>Hello del World!</span><span>Hello World!</span><div><span id="10">Hello World!</span></div></body>
</html>
  • 先使用getElementsByTagName()取得每一个span属性
  • 然后使用firstChild.nodeValue得到每一个span节点的内容
  • 然后将带有"del" 内容的节点保存到一个数组中.
  • 再使用parentNode得到要删除节点的父节点
  • 再使用removeChild()删除所有子节点
<script type="text/javascript">window.onload = function(){//取得"span元素var spanEles = document.getElementsByTagName("span");//得到原集合的长度var len = spanEles.length;//保存要删除的子节点数组var delList = new Array();//操作数组的下标var foot = 0;for(var x = 0; x < spanEles.length; x ++){spanEles[x].setAttribute("class","init1");//得到每个节点的内容var strValue = spanEles[x].firstChild.nodeValue;//判断是是否有"del"字符的节点if(strValue.indexOf("del")!=-1){//将每一个要删除的内容保存到数组中delList[foot ++] = spanEles[x];}}//循环删除数组中的每一个节点for(var j = 0; j < delList.length; j++){//得到当前节点的父节点,然后删除父节点的子元素delList[j].parentNode.removeChild(delList[j]);}}</script>
  • 运行结果

取得属性内容

  • 假设现在的html文件内容为,如果要取得id为:"10"的span元素中的属性内容
<html><head><title>欢迎页面!</title><meta charset="utf-8"/></head><body><div><span id="10 class="init0" >Hello World!</span></div></body>
</html>
  • 可以使用document.getElementById()方法取得一个指定id的元素-,正常情况下可以直接使用"元素.属性"取得元素内容
     window.onload = function(){//取得span属性var spanEle = document.getElementById("10");//向控制台输出,属性内容console.log("id = "+spanEle.id);console.log("class = "+spanEle.className);}
  • 控制台输出

  • 如果直接使用"元素.属性" 的方式取得属性内容,表示这个属性已经被定义过了,而一些我们自定义的属性,是无法使用这样的方式取得属性内容的,但是也可以通过以下的方法取得属性内容
Element.getAttribute("属性名称");
  • 例如html中定义有如下的内容
<div><span id="10" class="init0" obj="spanObj" >Hello World!</span></div>
  • 如果要取得span元素中的obj属性内容,可以通过以下方式
 <script type="text/javascript">window.onload = function(){//取得span属性var spanEle = document.getElementById("10");//向控制台输出,属性内容console.log("obj = "+ spanEle.getAttribute("obj"));}</script>

  • 使用DOM控制元素的属性,更加的灵活

实现HTML页面动态处理相关推荐

  1. 详细解剖大型H5单页面应用的核心技术点

    阐述下项目 Xut.js 开发中一个比较核心的优化技术点,这是一套平台代码,并非某一个插件功能或者框架可以直接拿来使用,核心代码大概是6万行左右(不包含任何插件) .这也并非一个开源项目,不能商业使用 ...

  2. div中加载html js,Div里面载入另一个页面的实现(Ajax取代框架)

    随着框架越来越不火了,HTML5就不对框架支持了,iframe也只有url了,Div就担当了此大任 DIV+CSS在页面部局确实也很让人满意,使用也更方便 今天突然遇到一个问题,那就是需要导入另一个页 ...

  3. 大型电商网站的页面静态化方案是如何支撑亿级流量的?

    前言 我们小伙伴们在访问淘宝.网易等大型网站时有没有考虑到,网站首页.商品详情页以及新闻详情页面是如何处理的?怎么能够支撑这么大流量的访问呢? 很多小伙伴们就会提出他们都采用了静态化的方案,这样用户请 ...

  4. div内嵌网页ajax,Div里面载入另一个页面的实现(取代框架)(AJax)(转)

    随着框架越来越不火了,HTML5就不对框架支持了,iframe也只有url了,Div就担当了此大任 DIV+CSS在页面部局确实也很让人满意,使用也更方便 今天突然遇到一个问题,那就是需要导入另一个页 ...

  5. 前端复盘: knockout + require + director 构建单页面程序

    关注并将「趣谈前端」设为星标 每早08:30按时推送技术干货/优秀开源/技术思维 目前react,vue,angular等框架都支持单页面程序,最近在回顾一些知识,想起刚毕业的时候接触到knockou ...

  6. 大型网站的页面静态化

    目录 前言 方案一:网页静态HTML化 伪静态 布局样式模板化 应用层nginx 分发层nginx 前言 我们小伙伴们在访问淘宝.网易等大型网站时有没有考虑到,网站首页.商品详情页以及新闻详情页面是如 ...

  7. Myeclipse中项目没有代码错误提示,jsp页面无编译迹象?如何解决

    在使用Myeclipse开发项目时,发现jsp页面中嵌入的java代码没有编译的迹象,错误的get方法没有报错,没有报错信息我们如何知道我们开发的内容是正确的呢? 接下来就演示一下如何解决

  8. 使用ajax不刷新页面获取、操作数据

    在使用jsp或html时,利用ajax达到不刷新页面就可以获取.操作数据. 首先上代码 (html+js) 在此处需要引入jquery插件 <!-- 这是页面部分 html--> < ...

  9. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

最新文章

  1. Fine-tune之后的NLP新范式:Prompt越来越火,CMU华人博士后出了篇综述文章
  2. IROS2021 | F-LOAM : Fast LiDAR Odometry and Mapping 解析
  3. golang 返回值报错 cannot use nil as type string in return argument
  4. 普通爬虫有啥意思,我写了个通用Scrapy爬虫
  5. 新字符设备驱动实验(自动分配设备号、自动创建应用层设备节点、新字符设备注册到内核的结构体)
  6. 动态内存的分配用法和构造动态一维数组
  7. d3.js 绘制极坐标图(polar plot)
  8. Openstack虚拟机实例备份方案测试
  9. yii selenium php,Yii 单元测试用例
  10. mxnet入门--第4篇
  11. web登录框,div半透明
  12. 计算机绘画小房子教案,中班绘画《房子》教案
  13. 身份证二要素,帮你轻松搞定实名认证
  14. jeecg ajax验证,jeecg权限模块学习
  15. After Effects快捷键
  16. Android中MVP框架理解
  17. PMS权限管理和鉴权过程
  18. python和excel数据分析有什么区别_用Excel、SQL、Python做数据分析有何不同?
  19. 非常有用的10个谈话技巧
  20. APICloud入门

热门文章

  1. Android波纹进度条 轻松地让它浪起来
  2. java编写一个学生类和教师类,Java创建一个学生类
  3. C 三个学生四门成绩,求成绩总和与平均值
  4. 网络131余文康 作业
  5. vs2015下pthread的使用
  6. Few-shot Learning survey-详细易懂-小样本综述
  7. 【论文笔记】A Reinforcement Learning Method for Multi-AGV Scheduling in Manufacturing
  8. Android 高质量开发之崩溃优化,kotlin协程跟线程
  9. 小学生都能读懂的区块链原理和术语介绍(故事图文)-引自《从零开始自己动手写区块链》
  10. pdf怎么转换成word文档呢?