DOM 基础 ---------- 获取元素

DOM 即文本对象模型,是 W3C 推荐的处理可拓展标记语言的标准编程接口,通过这些接口可以改变网页的内容,结构,样式

文档:一个页面就是一个文档,DOM 中用 document 表示

元素:页面中所有的标签都是元素,DOM 中用 element 表示

节点:网页中所有内容(标签,属性,文本,注释)都叫节点,DOM 中用 node 表示

DOM 获取元素有很多方法,下面一一说明

一:document.getElementById()

此方法用于返回一个匹配特定的 ID 元素,由于元素的 ID 大部分情况下要求是独一无二的,所以getElementById() 这个方法成为了一个高效查找特定元素的方法,返回的结果是一个元素对象

(由于文档页面要从上往下加载,所以要先有标签元素才能获取,因此 script 放在了标签的下方)

<body>

    <p id="p">这是一个P标签</p>

    <script>

        var ele=document.getElementById('p');  //获取id为p的元素

        console.log(ele);  //  输出结果为元素对象

        console.log(typeof ele);  //类型为object对象

    </script>

</body>

 有一个新方法为 console.dir(),这个方法可以输出对象的所有属性和方法,用法如下

<body>

    <p id="p">这是一个P标签</p>

    <script>

        var ele=document.getElementById('p');

        console.dir(ele)

    </script>

</body>

二:document.getElementsByTagName()

有些标签内部有很多相同的标签,例如 li 标签,我们利用这个方法可以获取带有指定标签名的对象的集合(以伪数组的形式存储,有长度有索引号,可以根据索引号来单独输出,可以遍历),注意这个方法名为 elements,刚才的方法为 element,如果页面中没有要获取的这个元素,则返回结果为空的伪数组的形式

<body>

    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

    <script>

        var ele=document.getElementsByTagName('li');

        console.log(ele);

        console.log(ele[0]);

    </script>

</body>

如果想要依次输出伪数组里的元素对象,可以采用遍历的方式 

<body>

    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

    <script>

       var ele=document.getElementsByTagName('li');

       for(var i=0;i<ele.length;i++)

       {
           console.log(ele[i]);
       }

    </script>

</body>

三:element.getElementsByTagName()

上面第二个方法的拓展,用于返回指定父元素下的指定标签名的子元素对象的集合,应注意父元素不可以是伪数组的形式,必须是单个对象

例如一个页面有 ul 标签也有 ol 标签,但是我只需要得到 ul 标签下的 li 标签,就可以用此方法

(注意如果直接输出 ele.getElementsByTagName('li') 就会报错,因为得到的 ele 是一个伪数组,但 ele[0] 得到的就是一个元素对象,因为此代码中只有一个 ul,所以是 ele[0]

<body>

    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

    <ol>
        <li>a</li>
        <li>b</li>
        <li>c</li>
        <li>d</li>
    </ol>

    <script>

       var ele=document.getElementsByTagName('ul');

       console.log(ele[0].getElementsByTagName('li'));

    </script>

</body>

 但是更普遍的做法是给父元素设置 id 属性,使用 getElementById 获取父元素对象,这样得到的直接就是一个对象,不必担心出错

<body>

    <ul id="uull">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>

    <ol>
        <li>a</li>
        <li>b</li>
        <li>c</li>
        <li>d</li>
    </ol>

    <script>

      var ele=document.getElementById('uull');

      console.log(ele.getElementsByTagName('li'));

    </script>

</body>

四:document.getElementsByClassName()

该方法为H5新增的方法,,根据类名返回某些元素对象的集合(以伪数组形式存储)

<body>

    <p class="ppp">这是第一个p标签</p>

    <p class="ppp">这是第二个p标签</p>

    <ul class="ppp">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>

    <script>

     var ele=document.getElementsByClassName('ppp')

     console.log(ele);

    </script>

</body>

五: document.querySelector( 选择器 )

返回指定选择器的第一个元素对象,注意这里的选择器要带符号,例如 .aaa  #aaa

<body>

    <p class="ppp">这是第一个p标签</p>

    <p class="ppp">这是第二个p标签</p>

    <ul id="uull">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>

    <script>

     var ele1=document.querySelector('.ppp')

     var ele2=document.querySelector('#uull')

     var ele3=document.querySelector('li')

     console.log(ele1);

     console.log(ele2);

     console.log(ele3);

    </script>

</body>

六: document.querySelectorAll( 选择器 )

返回指定选择器下的所有元素对象的集合

<body>

    <p class="ppp">这是第一个p标签</p>

    <p class="ppp">这是第二个p标签</p>

    <ul id="uull">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>

    <script>

     var ele1=document.querySelectorAll('.ppp')

     var ele2=document.querySelectorAll('li')

     console.log(ele1);

     console.log(ele2);

    </script>

</body>

七:获取特殊元素

我们如何获取 html 元素与 body 元素呢? 

获取 body 元素:document.body

获取 html 元素:document.documentElement

<body>

    <script>

     var ele1=document.body;

     var ele2=document.documentElement;

     console.log(ele1);

     console.log(ele2);

    </script>

</body>

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用\[1\]中的描述,每次开关对话框,其z-index都会递增,导致对话框外的元素被遮住。解决这个问题有两种方法。一种是前端团队形成统一规范,为不同的组件设置不同的z-index范围,不同的业务使用固定的组件。另一种方法是通过获取当前页面中所有元素的z-index值,并找到最高的值,然后在其基础上加一作为新的z-index值。具体步骤如下: 1. 将整个页面的所有DOM元素获取到,并转换成数组。可以使用`Array.from(document.all)`来实现。 2. 使用`window.getComputedStyle()`方法获取每个元素的z-index属性值。如果没有获取到,则默认为0。这个方法可以获取元素的行内样式和CSS样式表中的z-index值。 3. 将获取到的z-index值存储在一个数组中。 4. 通过某种方式(比如使用`Math.max()`函数或排序)找到数组中最大的z-index值。 5. 将最大的z-index值加1,作为新的z-index值返回。 这样,你就可以得到两个弹框的z-index值了。 #### 引用[.reference_title] - *1* [el-dialog中el-dialog_wrapper对应的div的z-index递增的问题](https://blog.csdn.net/ABidMan/article/details/130274526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [找到页面当前元素z-index最高的数值](https://blog.csdn.net/glorydx/article/details/125544622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西最近怎么样

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值