1

我有两个 JavaScript 程序,一个是我在旧公司中使用的,另一个是我刚刚在网站上遇到的。今天,我注意到我的同事在程序中使用了这两个标准,在最终确定产品之前,我们必须将所有内容更改为一个标准代码。

<script type="text/javascript">
   // Reference the textbox
   var txt = document.getElementById("<%=txtName.ClientID%>");

   // If the textbox was found, call its focus function
   if (txt != null)
      txt.focus();
</script> 

或者

<script type="text/javascript">
   // Reference the textbox and call its focus function
   var txt = $("#txtName");

   txt.focus();
</script> 

如果您处于这种情况,您会建议哪一种,为什么?

4

4 回答 4

2

第一个是纯 JS,第二个使用 jQuery 包装。如果你已经采用 jQuery 作为 JS 框架,那么第二个选项更好:)。在这种特殊情况下,第二个更好,因为您不必关心测试该变量是否为空(您正在调用 jQuery 元素的焦点函数,因此它将注意检查该元素是否在 DOM 上或不)

于 2011-04-05T17:11:04.057 回答
1

第二个使用 jquery,所以它依赖于那个库,但它的可读性很强。你甚至可以写得更短:$("#txtName").focus();

第一个更快,但总的来说,这种差异并不重要,但使用 jQuery 编写和阅读代码更容易。

于 2011-04-05T17:12:27.213 回答
1

如果您在一个团队中工作,那么txtName.ClientID您的同事可能会更清楚地了解它的含义。必须每天从我的同事那里翻阅多行代码,我会这样做。
或者两全其美并使用类似的东西:$("#<%=txtName.ClientID%>").focus()

于 2011-04-05T17:17:09.327 回答
1

正如 stecb 所说,第一个是纯 JavaScript 代码,第二个是某种 JS 库(很可能是 jQuery)。这里没有正确或错误的方法,即使如果您正在加载它,那么在整个项目中使用该库是有意义的,您显然是这样。对于现代系统的基本用法,使用纯 JavaScript 的潜在性能提升可以忽略不计。

您应该检查是否所有 url / 页面都加载了 JS 库,有时开发人员只在某些页面上加载某些库,这将阻止您使用该库,除非您包含它。

于 2011-04-05T17:17:27.547 回答