JS中DOM元素和对象模型(JS重点)

掌握JS中重点知识:DOM元素和对象模型

什么是DOM:文档对象模型(Doucment Object Model)是W3C组织推荐处理可扩展标记语言(HTML和XML)的标准编程接口;

  1. 文档:一个页面就是文档,DOM使用document表示
  2. 元素:页面中所有标签都是元素,DOM中使用element表示
  3. 节点:页面中所有内容都是节点(标签、属性、文本、注释等),用node表示

DOM把以上内容看作是对象

文档对象模型(Document Object Model):

将网页转为JS对象,可以通过JS进行操作,浏览器根据DOM模型把文档解析为节点(Node),节

点组成节点树(DOM Tree)DOM的最小单位是节点;

注意:

  1. 因为我们的文档是从上往下执行加载,所以现有标签,我们script写到标签下
  2. get获得element元素by通过驼峰命名法
  3. 多参数id是大小写敏感的字符串
  4. 返回的是一个元素对象

节点的分类 :

Document

文档节点

DocumentType

文档类型节点

Element

元素 标签

Attr

属性

Text

文本

Comment

注释

DocumentFragment

文档片段

这7种都继承了Node对象。

根据ID名获取元素 document.getElementById():

Document的方法 getElementById()返回一个匹配特定 ID的元素,由于元素的 ID 在大部分情况

要求是独一无二的,这个方法自然而然地成为了一个高效查找元素的方法。

<body>
<div class="div1" id="id1">
        内容文本
        <!-- 注释文本 -->
        <div class="inner">内部div</div>
</div>
<div id="time">2022年11月15日</div>
<script>
    //根据ID名获取元素
    //document.getElementById()
    document.getElementById("id1")//返回目标元素节点
    //没有匹配的节点 返回空值null
    document.getElementById("Id1")//大小写敏感

    var timer = document.getElementById("time");
    console.log(timer);
    console.log(typeof timer);
    // console.dir()打印我们返回的元素对象,更好的查看里面的属性和方法
    console.dir(timer);
</script>
</body>

  

 使用getElementByTagName()方法可以返回带有指定标签名的对象的集合

如果页面元素只有一个元素,返回的还是伪数组的形式,如果页面中没有一个元素则返回空的伪

组形式;

<body>
<div class="div1" id="id1">
        内容文本
        <!-- 注释文本 -->
        <div class="inner">内部div</div>
</div>
<ul>
        <li>124</li>
        <li>243</li>
        <li>354</li>
        <li>46546</li>
    </ul>
<script>
    //根据标签名获取元素
        //document.getElementsByTagName()  

        document.getElementsByTagName("div")//返回了HTMLCollection  类似于数组
        //如果没有匹配的内容 返回空集合

        document.getElementsByTagName("DIV")//大小写不敏感
        document.getElementsByTagName("<div>")//标签名不带尖括号

     // 使用getElementByTagName()方法可以返回带有指定标签名的对象的集合
        var lis = document.getElementsByTagName("li");
        console.log(lis);
        console.log(lis[1]);
        // 我们要依次打印里面的元素对象时我们可以采用遍历的方法、
        for(var i=0;i<lis.length;i++){
            console.log(lis[i]);
        }
</script>
</body>

根据类名获取元素 document.getElementsByClassName()

<body>
 <div class="div1" id="id1">
        内容文本
        <!-- 注释文本 -->
        <div class="inner">内部div</div>
    </div>
 <div class="div1 div2">
        内容文本
        <!-- 注释文本 -->
    </div>
    <script>
        document.getElementsByClassName("div1")//返回了HTMLCollection

        document.getElementsByClassName("Div1")//大小写敏感
        document.getElementsByClassName("div1 div2")//可以用多个类名作为参数 类名之间用空格隔开
    </script>
</body>

根据CSS选择器获取元素:

document.querySelector() 方法                  

  •  querySelector()fh返回指定选择器的第一个元素对象 HTML5新增
  • 文档对象模型Document引用的 querySelector() 方法返回文档中与指定选择器或选择器组匹配的
  • 一个 Element对象。
  •  如果找不到匹配项,则返回null。

备注: 匹配是使用深度优先先序遍历,从文档标记中的第一个元素开始,并按子节点的顺序依次遍历。

<body>
 <div class="div1" id="id1">
        内容文本
        <!-- 注释文本 -->
        <div class="inner">内部div</div>
    </div>

    <div id="box3">
        <ul>
            <li>首页</li>
            <li>第二页</li>
        </ul>
    </div>
    <script>
        document.querySelector(".div1")//返回第一个匹配的元素节点,哪怕有多个满足条件的元素
        //没有匹配的元素 返回 null

    var firstbox = document.querySelector(".box");
        console.log(firstbox);

        var nav = document.querySelector("#box3");
        console.log(nav);
        var li = document.querySelector("li");
        console.log(li);
    </script>
</body>

document.querySelectorAll() 方法:

<body>
<div id="box3">
        <ul>
            <li>首页</li>
            <li>第二页</li>
        </ul>
    </div>
    <script>
        document.querySelectorAll(".div1")//返回NodeList 节点列表 类似于数组的对象
        //没有匹配的元素 返回空的NodeList
    
    // querySelectorAll()返回指定选择器的所有元素对象集合
        var allbox = document.querySelectorAll(".box3");
        console.log(allbox);
        var lis = document.querySelectorAll("li");
        console.log(lis);
    </script>
</body>

^_^` ~_~ ^_^赶紧收藏起来吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python,我们可以使用顺序表来储一组元素。顺序表是一种线性表的实现方式,元素在内是连续储的。 要在顺序表查找元素,可以使用遍历的方式逐个比较元素,直到找到目标元素或遍历完整个表。具体的步骤如下: 1. 首先,我们需要定义一个顺序表,可以使用Python的列表(list)来表示。例如,我们有一个顺序表lst = [1, 3, 5, 7, 9]。 2. 然后,我们需要定义一个目标元素,即要查找的元素。例如,我们要查找的元素target = 5。 3. 接下来,我们可以使用for循环遍历顺序表的每个元素。在每次循环,我们可以逐个比较当前元素是否与目标元素相等。如果相等,说明找到了目标元素,可以返回该元素的索引值。 4. 如果遍历完整个顺序表都没有找到目标元素,则表示目标元素在于顺序表。 下面是一个实现顺序表查找元素的Python代码示例: ```python def search_element(lst, target): for i in range(len(lst)): if lst[i] == target: return i return -1 # 表示目标元素在 lst = [1, 3, 5, 7, 9] target = 5 result = search_element(lst, target) if result != -1: print("目标元素在顺序表的索引为:", result) else: print("目标元素在于顺序表") ``` 这段代码首先定义了一个名为search_element的函数,它接受两个参数lst和target,分别表示顺序表和目标元素。在函数内部,使用for循环遍历顺序表的每个元素,通过比较判断是否找到了目标元素。如果找到了,则返回该元素的索引值;如果遍历完整个顺序表都没有找到,则返回-1表示目标元素在。 最后,我们使用定义好的函数search_element来查找目标元素5在顺序表lst的索引,并根据返回值判断是否找到了目标元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值