javascript - 如何在JavaScript中按名称选择ID?

标签 javascript html dom

假设我有:

<div id='test1'></div>

我想将其简单地称为:

test1

在代码中。而不是:

document.getElementById('test1');
$('#test1') // if in jquery

我不想做 window.test1 = $('#test1'); 我正在寻找一个通用的解决方案。我知道我可能可以使用 init 上的函数迭代所有 id,但是如果 dom 元素是在整个程序中动态创建的,该怎么办?我不想每次添加 dom 元素时都运行为窗口分配 id 的函数。

我希望 test1 (以及页面上的所有 id) 始终成为窗口对象的一部分。默认情况下。有没有办法做到这一点?就像当有人尝试访问不存在的窗口对象时,也许有一种方法可以注入(inject)代码,并且该代码会以某种方式执行 document.getElementById 而无需我这样做明确地写出来。

最佳答案

您可以创建一个代理,它将属性访问转换为 dom 查找。

const dom = new Proxy(window, {
    get(_, name) {
        return document.getElementById(name);
    }
});

dom.test1.style.position = "static"; // tada

注意:实际上不要这样做

关于javascript - 如何在JavaScript中按名称选择ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47805752/

相关文章:

javascript - 使用 JavaScript 突出显示选定的 div

javascript - 使用 jQuery 读取 JSON 数组

javascript - 在没有实例的情况下寻址 jQuery Google Maps 对象

javascript - 使用 forEach 方法修改 dom 元素

HTML 复选框 CSS : Cursor default or pointer?

javascript - 元素原型(prototype)异常(不是函数或方法)

c# - 当用户在文本框中输入数字时动态显示 div

javascript - 显示 DIV 中的内容

html - 将链接添加到 iframe

jquery - 边境头条