如何在另一个 ul 下获得 ul 的所有后代 li

How to get all decendant li of ul even under another ul

如何在 ul#div 和 return 下获取 li 的 "all" attr("class") 并将其作为数组而不重复 [=19 的相同值=]?

<ul id="div">
  <li class="a"></li>
  <li class="aa">
    <ul id="set">
      <li class="aa1"></li>
      <li class="aa2"></li>
    </ul>
  </li>
  <li class="aaa"></li>
  <li class="aaa"></li>
  <li class="aaa"></li>
  <li class="a"></li>  
</ul>

我正在寻找这样的 return:

return class 数组 (a,aa,aa1,aa2,aaa)

获取<ul>的所有<li>个具有class属性的后代,将其制成标准数组,然后获取每个类。

var classes = $('ul li[class]').toArray().map(function(el) { return el.className });
console.log(classes);
<!-- results pane console output; see http://meta.stackexchange.com/a/242491 -->
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="div">
  <li class="a"></li>
  <li class="aa">
    <ul id="set">
      <li class="aa1"></li>
      <li class="aa2"></li>
    </ul>
  </li>
  <li class="aaa"></li>
  <li class="aaa"></li>
  <li class="aaa"></li>
  <li class="a"></li>  
</ul>

使用纯JavaScript,你可以做这样的事情

var node = document.getElementById("div");
var children = node.childNodes;
var output = [];
for (var i = 0; i < children.length; i++)
{
    if (typeof children[i].className !== "undefined")
        output.push(children[i].className);
}