Самый быстрый способ проверить, есть ли у объекта jQuery какой-либо соответствующий элемент - PullRequest
1 голос
/ 18 мая 2011

Скажем, у меня огромный вид дерева, и одна ветвь находится в переменной с именем $branch, и теперь я хочу проверить, содержит ли эта ветвь нет или более одного элемента расширить классов. Другими словами, логическое значение должно быть возвращено, как только найдено одно совпадение.

Хорошо, я могу сделать это с $branch.find('.expand').length > 0, но есть ли лучший способ, который остановился бы на первом соответствующем элементе и, следовательно, был бы быстрее?

Я думаю, что использование first() уменьшает существующий набор до длины один, поэтому я бы использовал find(), а затем уменьшил бы?

Ps. Как вы заметили в примере, я использовал find(), потому что я хочу пойти глубже, чем просто дети из $branch

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Вы определенно хотите взглянуть на метод .has().

var $branchesWithExpand = $branch.has('.expand');
1 голос
/ 18 мая 2011

Стандартные селекторы CSS, подобные этому, используют собственный метод DOM querySelectorAll (). То есть они запускаются в нативном коде браузера и работают быстро. Если у вас нет причин полагать, что выполнение вышеизложенного является медленным, я сомневаюсь, что вам нужно беспокоиться об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...