js中可以直接使用元素id来.出方法,且能精准设置成功 您所在的位置:网站首页 getelementbyid返回类型 js中可以直接使用元素id来.出方法,且能精准设置成功

js中可以直接使用元素id来.出方法,且能精准设置成功

2023-06-11 21:55| 来源: 网络整理| 查看: 265

        分享一下前两天发现的一个有趣的东西。

        众所周知,javascript可以通过 var ElementId = document.getElementById("id"); 来精准定位页面元素。这个方法会返回一个表示该元素的对象。

        但是!!!

        如果我们将  var ElementId = document.getElementById("id"); 这段代码注释掉,是否会报错?

        上码!

function rightUName() { let userName = document.getElementById("userName"); let rule = new RegExp("[a-zA-Z0-9_\u4e00-\u9fa5]{6,18}"); let labr = document.getElementById("labr"); // let labf = document.getElementById("labf"); if (rule.test(userName.value)) { labr.style.display = "inline-block"; labf.style.display = "none"; labf. numU = 1; } else { labf.style.display = "inline-block"; labr.style.display = "none"; numU = 0; } }

          这个方法想实现的功能是获取输入框中的数据,判断是否正确,如果正确则绿勾元素显示,红色叹号元素隐藏,反之红色叹号显示,,绿勾隐藏。

        按照以往的逻辑,我们需要先定义变量来接收通过document.getElementById()方法返回的元素对象。但是,在这里我把 labf 变量声明与获取元素对象的代码注释掉了,理论上来说这里应该报错,实际上却没有报错,且能完美运行。

        查看 labf 的类型,出乎我的意料,labf 是any。

        什么是any类型?在 TypeScript 中,any类型用于表示任意类型,即不希望为其指定明确类型的值。在使用any类型时,编译器会忽略该值的类型检查。这意味着,可以将任何类型赋值给 any类型的变量,或从 any类型的变量中获取任何类型的值,而不会收到编译器的类型检查错误。

       既然这个值是any类型,那么为什么还能精准找到我们希望他定位的对象呢?

        我将我想要定位的对象的id设的值也是labf。如果我将前面的 labf 改变一下(比如改为labg),这个labf 在运行之后就不能精准定位到 id 为labf 的元素。因此,我猜测,这个labf是通过元素的 id 来精准定位到这个元素的。

        当然,这样能定位到准确的元素,也是因为当前页面其他元素的id没有一样的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有