JQuery 类选择器与 id 选择器

标签 jquery performance jquery-selectors code-maintainability

我有 7 个不同的按钮,单击时都执行相同的 javascript 功能。我应该使用类选择器还是 id 选择器?

$("input.printing").on("click", function(event) {
     printPdf(event);
});

   $("#package1Pdf").click(function(event) {
         printPdf(event);
   });
$("#package2Pdf").click(function(event) {
         printPdf(event);
   });
$("#package3Pdf").click(function(event) {
         printPdf(event);
   });
$("#package4Pdf").click(function(event) {
         printPdf(event);
   });

各自的优点和缺点是什么?哪个是更优选的。

最佳答案

您可以使用不带多个选择器的 ID 过滤器:

$('[id^="package"]').click(printPdf);

上面将选择所有以“package”开头的 id。这意味着差异主要是语义上的。您应该选择对您的应用程序及其开发方式最有意义的。

请参阅jQuery attribute selectors page了解 jQuery 选择的灵 active 。在此页面上保留书签将防止您再次编写像第二个示例一样的代码。

哪个更好?

如果您设置了结构,以便拥有一个逻辑上正确定义适当元素集的类,那么您应该使用它来选择。

同样,如果您给了元素专门命名的 ID,并且没有附加表示您要选择的内容的描述性类名称,则使用 ID 选择。 几乎所有应用程序都不会关心性能差异,包括您的应用程序。

关于JQuery 类选择器与 id 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15393928/

相关文章:

javascript - 多次使用 jquery 对话框,参数略有不同

mysql - Xdebug/CacheGrind 但对于 MySQL?

jquery - 按条件选择

javascript - 删除类不适用于 id #.parent?

javascript - 用javascript点击链接时如何删除链接属性?

performance - azure托管的mac管道,关于如何使其更快的建议,目前非常慢,在桌面上5分钟,在服务器上接近20

c++ - Lambda 构造性能和静态 lambda?

使用无序列表进行的 jQuery 选择不单击

javascript - 使用 > 或 < 值大于或小于某个数量的属性的 jQuery 选择器

jquery - 我无法理解 jQuery 链接是如何工作的