jquery $(文档).on('change',函数(){})与$('.类名').on('change',函数(){})

u3r8eeie  于 2023-02-12  发布在  jQuery
关注(0)|答案(1)|浏览(120)

当实现一个新的Jquery函数来执行事件时,哪一个选择器是最好的父元素选择器?从下面的代码片段来看,哪一个是最有效的?

$(document).on('change', `div[id^="parameter_${fieldId}"]`, function() {
      console.log("ID of parameter chaged element: " + fieldId);
});

对比

$('.other-parameters').on('change', `div[id^="parameter_${fieldId}"]`, function() {
      console.log("ID of parameter chaged element: " + fieldId);
});

div[id^=“parameter_${fieldId}是动态生成的,.other-parameter类是 div[id^=“parameter_${fieldId} 的父元素中的静态类。

bqujaahr

bqujaahr1#

一般来说,如果可能的话,使用ID作为选择器(在普通JS中是getElementById)是最快的,其次是上下文语法,就像后面的例子一样,它将限制jQuery需要爬行以查找选择器匹配的起始范围。
我认为最快/性能最佳的方法是:

$(`div#parameter_${fieldId}`).on('change', function() {
  ...
});

接着是:

$('#other-parameters').on('change', `div#parameter_${fieldId}`, function() {
  ...
});

如果您从ID开始(并且只要它在页面上是唯一的),那么您总是可以获得最快的性能。

相关问题