Возможно, вам будет лучше использовать .closest()
, например: $(this).closest('.dashdiv')
Это не быстрее с точки зрения двигателя, так как вы все еще продолжаетеслои DOM, но для новичка это более понятно, а также для более короткого кода.
КОММЕНТАРИЙ
Если вам нужна чистая скорость, вы можете также пропуститьjQuery полностью и используйте вместо него node.parentNode
.Но это касается сложных вопросов подсчета циклов, и я думаю, что это академический вопрос.
Если вы пишете высокопроизводительный код для крупного производства, такого как коммерческая поисковая система или поставщик веб-почты, тогда подсчитывайте циклыважно, потому что любая небольшая оптимизация умножается в тысячи раз.При всем моем уважении, я сомневаюсь, что вы пишете такой код.
Если вы пишете что-то, что будет поражено несколькими людьми одновременно, то небольшие оптимизации являются интеллектуальнымупражнение, которое никак не повлияет на результаты.Вам придется повысить эффективность своего кода на сотни миллисекунд, прежде чем любой пользователь даже начнет замечать, и этот код не собирается этого делать.
Вместо этого гораздо важнее подумать о следующем разработчик , который будет смотреть на ваш код.Для этого разработчика важно иметь четкий, хорошо написанный код, который немедленно сообщает о том, что он делает.Размытые цепочки таких методов, как parent().parent().parent()
, могут запутать и запутать других разработчиков, не говоря уже о node.parentNode.parentNode.parentNode
- вот почему .closest()
был создан в первую очередь.Это ясно, кратко и заметно менее эффективно, чем цепи, которые он заменяет.999 раз из тысячи - это путь, по которому ты должен идти.