我怎样才能得到"所有"在ul#div下的li的attr(" 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)
答案 0 :(得分:1)
获取具有<li>
属性的<ul>
的所有class
个后代,将其变为标准数组,然后获取每个类。
var classes = $('ul li[class]').toArray().map(function(el) { return el.className });
console.log(classes);
&#13;
<!-- 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>
&#13;
答案 1 :(得分:0)
使用纯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);
}