Ваш первый пример быстрее, поскольку он включает только проверку атрибута id
на всех элементах input
.
Селектор input:checkbox
эквивалентен селектору , равному :
$('input[type=checkbox]')
Итак, вы делаете два селектора атрибутов во втором примере:
$("input[type=checkbox][id$='" + code + "']").each(function() { //...
Теперь в третьем примере, поскольку вы не указываете имя тега или что-либо еще, он будет проверять все элементы DOM, поскольку селектор :checkbox
эквивалентен:
$("*:checkbox")//...
Именно поэтому всегда рекомендуется ставить этот тип селекторов перед именем тега или каким-либо другим селектором.
В конце ваш третий пример (самый медленный) эквивалентен примерно так:
$("[type=checkbox][id$='" + code + "']").each(function() { //...