【发布时间】:2019-03-29 16:56:18
【问题描述】:
我更喜欢将我的所有 DOM 元素绑定在我的代码顶部,以便 ID 或类引用仅硬编码一次,即使该元素在代码中被多次使用。像这样的:
var startButton = "#startButton";
var closeButtons = ".button.close";
这适用于选择器,例如 document.querySelector。当我将元素 ID 与上面的静态变量之一进行比较时,就会出现挑战,例如在点击事件期间:
e.target.id == startButton
由于变量 startButton 包含一个尖锐的,我将不得不做这样的事情:
e.target.id == startButton.replace('#', '')
这显然不是处理事情的理想方式,所以我想知道是否有更好的方法来绑定 DOM 元素以供以后使用?
请注意,我确实考虑过立即使用选择器检索元素,例如 document.querySelector,但这会阻止我以后操作这些元素。
编辑:我上面的注释结果是错误的。以后完全可以操纵这些元素。所以问题是,将选择器存储在变量中,还是将节点存储在变量中更好。正如下面所指出的,DOM 元素在声明时可能不存在,因此最好将选择器存储在变量中,就像我在上面所做的那样。
【问题讨论】:
-
嗯,你不是真的绑定DOM元素;您只是将选择器保存在变量中。这是一件好事,但它正是您所说的问题(当您开始使用更复杂的选择器时,情况只会变得更糟)。
-
不,它改变了 dom....
-
jsfiddle.net/35o8rh62 这是基本的javascript。
-
Taplar 所说的绝对是 100% 准确的。
-
你是完全正确的 - 这绝对有效。我不知道为什么我以前不能做到这一点。也许我的代码包含错误。我很抱歉。
标签: javascript dom selector