使用jQuery获取叶节点的最有效方法是什么?

时间:2011-01-05 09:20:30

标签: jquery

如何从DOM获取所有叶子节点,比方说div?我想要一个最佳解决方案,如果没有简单而神奇的选择器。我想过使用“reachElem.find('div')。length == 0”但我不确定这是不是正确的方向。有什么想法吗?

2 个答案:

答案 0 :(得分:37)

您可以使用以下选择器

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

上方选择器将选择所有没有孩子的DIV。

答案 1 :(得分:10)

如果你真的想要一些有效的东西,请避免使用复杂的:not(:has(*))选择器:

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

我发现它的效率是eHussain建议的两倍,甚至更快。