Используя предложенный вами метод, вы фактически теряете производительность, поскольку каждый if запрашивает dom, а ваша функция выдает запрос снова.
function inputHinting() {
$(':input.hint').each( function() { //query the dom again since it was found.
...
});
}
$(function() {
if ( $(':input.hint').length > 0 ) { //Query the dom for :input.hint
inputHinting();
}
});
jQuery будет обрабатывать это для вас, так как он проверяет наличие элемента, прежде чем что-то с ним сделать. С учетом сказанного, если вы делаете это , вы должны кэшировать свои селекторы следующим образом:
function inputHinting($inputHint) {
$inputHint.each( function() {
...
});
}
$(function() {
var $inputHint = $(':input.hint');
if ( $inputHint.length > 0 ) { //Query the dom for :input.hint
inputHinting($inputHint);
}
});
Делая это, вы запрашиваете дом только один раз.