DOM节点内容和操作以及表格属性操作

DOM

课前介绍:

DOM:document object model 文档对象模型

dom是一种技术,允许开发者通过JavaScript来操作HTML/XML

在DOM中,会把HTML页面描绘成一个由节点组成的倒立树。

节点:12种 常见的有:元素节点(标签)、属性节点(属性)、文本节点(内容)

节点的关系:父子 (父节点、子节点) 兄弟(兄弟节点)

一、获取节点

1.获取子节点
  • childNodes 包含元素节点和文本节点

  • children 元素节点

    children和childNodes都是集合(伪数组) 索引 length

    <div id="box">
        <div>AAA</div>
        <p>BBB</p>
    </div>
    var o = document.getElementById('box');//元素节点对象
    // console.log(o, typeof o);
    console.log(o.childNodes);//子节点   元素节点/文本节点		5个
    console.log(o.children);//子节点     元素节点				2个
2.获取父节点

parentNode 返回值是一个元素节点对象

offsetParent 定位的父节点 没有定位—>body

3.节点属性
  • nodeType 节点的类型
    • 元素节点 1
    • 属性节点 2
    • 文本节点 3
  • nodeName 节点的名称 一般用于元素节点 DIV P SPAN
  • nodeVaule 节点的内容 一般用于文本节点
4.其它获取节点的属性
  • 第一个子节点

    • firstChild 第一个子节点(文本节点/元素节点)
    • firstElementChild 第一个子节点(元素节点)
  • 最后一个子节点

    • lastChild 最后一个子节点(文本节点和元素节点)
    • lastElementChild 最后一个元素节点
  • 上一个兄弟节点

    • previousSibling 元素/文本 节点
    • previousElementSibling 元素节点
  • 下一个兄弟节点

    • nextSibling 元素/文本节点
    • nextElementSIbling 元素节点

二、节点的操作

通过JavaScript来对HTML进行增删改查

1.创建/增加节点

1)创建节点

  • createElement(tagName) 创建一个元素节点对象
  • createTextNode() 创建文本节点对象

2)添加节点:

  • appendChild() 在父节点中末尾追加子节点
  • insertBefore() 在指定节点前插入节点对象
    • 父节点.insertBefore(newChild,oldChild)
2.删除节点:
  • remove() IE8+ 删除节点(自杀)
  • removeChild() 删除指定子节点
        // o.removeChild(oC);//删除子节点
        oC.remove();//删除自身   “自杀”
3.替换节点

replaceChild(newChild,oldChild); 替换节点

        var oDiv=document.createElement('div');//创建的新的div标记
        oDiv.innerHTML="hello world";

        var o=document.getElementById('box');  //父节点      
        var op=o.children[0];//要被替换的节点

        o.replaceChild(oDiv,op);
4.复制/克隆节点

cloneNode(flag) 复制节点

注意:flag是一个布尔类型,默认为false,不复制子节点,只复制标签自身。true ,复制子节点

三、知识补充

1.节点查找方法补充

根据ID,根据tagName、className找元素

根据选择器找元素:

  • querySelector() 根据选择器找元素 若有多个匹配元素,只取第一个
  • querySelectorAll() 根据选择器获取所有匹配的元素 返回值是:伪数组

注意:这两个方法不支持低版本浏览器

2.属性操作
  • 对象.属性名
    • 取值: 对象.属性名 例如:img.src
    • 赋值: 对象.属性名=值
  • 对象[属性名]
    • 取值: 对象[属性名]
    • 赋值: 对象[属性名]=值
  • 通过方法来实现属性操作
    • getAttribute(属性名)
    • setAttribute(属性名,属性值)
        var o = document.querySelector('img');

        // o.src="./img/2.JPG";
        // o['src']="./img/3.JPG";
        // console.log(o.src);
        // o.tag='111';//代码中自定义属性
        // console.log(o.tag);
        // o.setAttribute('src','./img/4.JPG')
        // console.log(o.getAttribute('src'));//相对路径


        // console.log(o.tag);//undefined
        // console.log(o['tag']);//undefined
        console.log(o.getAttribute('tag'));
   <img src="./img/1.JPG" alt="" tag="222">

注意:若需要取出HTML标签中自定义的 属性的值,对象.属性名和对象[属性名]均取不到值(undefined),可以通过getAttribute()方法来取出HTML标签中自定义属性的值。

3.常见DOM对象补充

document对象:文档对象

document.body : body节点对象

document.documentElement: html页面对象

四、表格操作

表格节点对象的常见的属性

  • tHead
  • caption 标题
  • tBodies 集合------------> tBodies[0]
  • tFoot
  • rows 行 集合
  • cells 列 集合
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以回答这个问题。您可以使用XML解析库(如Python中的ElementTree)来读取XML文件并将其转换为树形结构。然后,您可以使用递归函数来遍历树并生成UI元素,以显示节点和其对应的子节点属性。当用户单击某个节点时,您可以动态显示其子节点属性。您可以使用HTML和JavaScript来创建这个UI,并使用Ajax技术从服务器加载XML文件。 ### 回答2: 在已有基础上增加读取XML后生成树,可以使用XML解析库或者DOM操作将XML文档解析为树形结构。通过遍历树的节点,可以实现对节点的展示和属性的显示。 首先,需要导入XML解析库或者DOM操作的相关模块,例如python中的xml.etree.ElementTree模块。 接下来,读取XML文档,并解析为树形结构。可以使用库提供的方法,如xml.etree.ElementTree.parse()方法。 解析后,可以获取XML文档的根节点,并将根节点设置为树的顶层节点。 在界面中展示树形结构。可以使用图形库或者前端技术,如Tkinter、PyQt、HTML+CSS等实现界面展示。 注册节点点击事件。对于每个节点,通过绑定点击事件的回调函数,实现点击节点时的相应操作。 点击节点时,显示节点对应的子节点属性。在点击事件的回调函数中,可以获取当前点击的节点,并获取该节点的子节点属性。 最后,将子节点属性展示在界面中。可以将子节点属性以文本、表格或者其他形式显示在界面中。 点击其他节点时,重复上述操作,更新界面展示的节点属性信息。 总的来说,实现XML读取后生成树,再点击节点显示子节点属性,需要涉及XML解析、树形结构、界面展示和事件处理等相关技术。 ### 回答3: 在这个基础上增加读取XML并生成树的功能,可以使用XML解析器来实现。首先,我们需要借助XML解析库,如Python中的ElementTree库。通过调用解析器的相应方法,可以读取XML文件并将其解析为树形结构。 读取XML文件并生成树的步骤如下: 1. 导入XML解析器库,如ElementTree。 2. 使用解析器的`parse()`函数读取XML文件,并将其解析为树形结构。 3. 使用`getroot()`函数获取根节点,并以此为基础开始遍历树。 4. 遍历树的每一个节点,并通过`tag`属性获取节点名称,以及`text`属性获取节点的文本内容。 5. 使用`iter()`函数获取节点的所有子节点,并展示子节点的名称。 6. 如果节点属性,则使用`attrib`属性获取所有属性,并展示属性的名称和值。 7. 根据用户的点击,获取相应节点的子节点属性,并展示出来。 这样,当用户点击一个节点时,程序就可以展示该节点的所有子节点属性,满足了题目的要求。同时由于树形结构的特性,用户还可以继续展开子节点,并查看其对应的子节点属性。 通过以上步骤,我们可以实现基于已有功能的XML解析和树形结构生成,以及根据用户点击动态显示子节点属性的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值