Разработчики, которых я знаю, часто повторяют одни и те же селектора JQuery, вместо того, чтобы сохранять результат в переменной. Они согласуются с этим подходом.Можно ли сохранить результат селектора JQuery в переменной?
Например, они делают это:
var propName = $(this).attr('data-inv-name');
var propValue = $(this).attr('data-inv-value');
Вместо этого:
var current = $(this);
var propName = current.attr('data-inv-name');
var propValue = current.attr('data-inv-value');
Последний подход чувствует правильным для меня, но, может быть, я что-то не хватает. Это простой пример, но я видел $ (это) несколько десятков раз в одной и той же функции.
Какова наилучшая практика для разработки с помощью JQuery? Переключатели вызовов многократно или сохраняются в переменной?
Это на самом деле хороший практик чтобы хранить элементы в переменных, а не искать их в DOM, если вы собираетесь использовать их снова и снова, однако, когда дело доходит до 'this', это особый вид внутренней переменной, которая не просматривается снова, поэтому он уже кэширован и, вероятно, лучше, чем большинство вещей, но вы сохраните вызов функции jQuery. – adeneo
И dupe -> http://stackoverflow.com/questions/10432228/storing-this-in-a-variable – adeneo
Не совсем обман. Пример, который я дал, был '$ (this)', но я спрашиваю о селекторах вообще. '$ ('# someid')', '$ ('. someclass')' и т. д. –