对于WinJS应用程序,我应该使用getElementById还是直接引用该元素?

时间:2012-11-27 20:51:26

标签: javascript windows-8 microsoft-metro

引用此DOM元素:

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

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

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

或者这个:

chkBxCheezDoodles.checked = true;

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

2 个答案:

答案 0 :(得分:3)

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

恕我直言,我尝试根本不使用ID,而是使用querySelectors,或者使用自定义属性或特定的CSS类。

答案 1 :(得分:2)

我同意Dominic的看法。我怀疑如果你使用getElementById而不是querySelector它可能会更高效,但我通常不关心镍和硬币的时间节省。你不想一直输入document.querySelector,我不喜欢每次都要在document.querySelector和querySelectorAll之间做出决定。 “让我们看到我期待一件事或一些事情回来?”所以我将它们都包装在我在ocho.js库中调用查询的函数中。我通常将它作为简单的“q”引入我的应用程序到全局命名空间。这样我总是可以q("#charlie")来获取名为“charlie”或q(".large")的元素来获取具有大类的所有元素。如果只有一个它返回DOM元素。如果有多个则返回一个vanilla数组。这让我的生活更轻松。然后我可以做......

q(".large").forEach(function(el) { el.style.fontSize = 'xx-large'; });