1

要引用此 DOM 元素:

<input id="chkBxCheezDoodles" type="checkbox" />

在 Windows 8 JS 应用程序中,我可以这样做:

document.getElementById("chkBxCheezDoodles").checked = true;

或这个:

chkBxCheezDoodles.checked = true;

什么时候(如果有的话)getElementById 优先于直接引用?使用 getElementById 是否被认为“更干净”?

4

2 回答 2

3

我的偏好是使用 getElementById,而不是依赖于将变量投影到全局命名空间中。这不会导致类似命名变量、冲突等问题。

恕我直言,我尽量不使用 ID,而是使用 querySelectors,无论是使用自定义属性还是特定的 CSS 类。

于 2012-11-28T01:13:32.757 回答
2

我同意多米尼克的观点。我怀疑如果您使用 getElementById 而不是 querySelector,它可能会更高效,但我通常不关心那些五分钱的时间节省。您不想一直键入 document.querySelector,我也不喜欢每次都在 document.querySelector 和 querySelectorAll 之间做出决定。“让我们看看我期待一件事回来还是几件事回来?” 所以我将它们都包装在一个我在ocho.js库中调用 query 的函数中。我通常将它作为简单的“q”带入我的应用程序的全局命名空间中。这样我总是q("#charlie")可以得到名为“charlie”的元素或q(".large")获取所有大类的元素。如果只有一个,则返回 DOM 元素。如果有多个,则返回一个香草数组。这让我的生活更轻松。那我可以做...

q(".large").forEach(function(el) { el.style.fontSize = 'xx-large'; });
于 2012-11-28T01:44:18.530 回答