如何让所有体面的李甚至在另一个ul之下

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

本文关键字:另一个 ul 之下 李甚 体面      更新时间:2023-09-26

如何在ul#div下获取li的"all"attr("class"(,并将其作为数组返回,而不重复相同的class值?

<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>

我正在寻找这样的回报:

数组中的返回类(a,aa,aa1,aa2,aaa(

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

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);
}