【问题标题】:For a WinJS app, should I use getElementById or reference the element directly?对于 WinJS 应用程序,我应该使用 getElementById 还是直接引用元素?
【发布时间】:2012-11-27 20:51:26
【问题描述】:

要引用这个 DOM 元素:

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

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

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

或者这个:

chkBxCheezDoodles.checked = true;

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

【问题讨论】:

    标签: javascript windows-8 microsoft-metro


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,我一定会看看 ocho.js 库。希望在未来的某个时候将其视为 Nuget 包。
    猜你喜欢
    • 2021-10-18
    • 2019-01-15
    • 2021-07-07
    • 2016-07-14
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多