Каков наиболее эффективный способ получить листовые узлы с помощью jQuery

как можно получить все листовые узлы, допустим, divs, из DOM? Я пытаюсь думать об оптимальном решении, если для этого нет простого и волшебного селектора. Я думал о том, что используется "достигнутоElem.find(" div "). Length == 0", но я не уверен, что это правильное направление. Есть идеи? Благодаря

Ответы

Ответ 1

Вы можете перейти со следующим селектором

$('div:not(:has(*))')

Выше выбора выберете все DIV, у которых нет детей.

Ответ 2

Если вы действительно хотите что-то эффективное, избегайте сложного селектора :not(:has(*)):

$("div").filter(
   function(index) {
      var isLeaf = $(this).children().length === 0;
      return isLeaf;
   }
);

Я обнаружил, что он в два раза эффективнее, чем предложение eHussain, или даже быстрее.