javascript - 用于 div 中 ul 元素类的 jQuery 过滤器
问题描述
我有这样的html。我正在尝试获取<ul>
div 中每个元素的类id = 'accordion'
。有没有一种简单的方法来使用 jQuery 来查询这个?我一直在查看文档,但没有找到可以直接使用的东西。例如,我想做一些类似的事情:
$("#accordion").filter()
<div id="accordion">
<h3>Section 1</h3>
<div>
<ul class="section1">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
<h3>Section 2</h3>
<div>
<ul class="section2">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
<h3>Section 3</h3>
<div>
<ul class="section3">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
</div>
解决方案
您可以使用. 定位div内的任何元素$('#accordion *')
。然后检查当前元素是否具有类属性。
试试下面的方法:
$('#accordion *').each(function(){
if($(this).attr('class'))
console.log($(this).attr('class') + ' is in ' + $(this)[0].nodeName);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="accordion">
<h3>Section 1</h3>
<div>
<ul class="section1">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
<h3>Section 2</h3>
<div>
<ul class="section2">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
<h3>Section 3</h3>
<div>
<ul class="section3">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
</div>
如果您想将所有类作为数组使用filter()
并map()
喜欢以下方式:
let allClass = $('#accordion *').filter(function(){
return $(this).attr('class')
}).get().map(el => el.className);
console.log(allClass);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="accordion">
<h3>Section 1</h3>
<div>
<ul class="section1">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
<h3>Section 2</h3>
<div>
<ul class="section2">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
<h3>Section 3</h3>
<div>
<ul class="section3">
<li><a href="www.google.com"> List item one</a></li>
<li><a href="www.google.com"> List item two</a></li>
<li><a href="www.google.com"> List item three</a></li>
</ul>
</div>
</div>
推荐阅读
- bash - 根据年份提取 bibtex 条目
- javascript - window.removeEventListener 没有从窗口中删除事件
- python - Serverless-offline 适用于 javascript 但在 python 中抛出错误
- c - 为什么 fgets() 不接受 C 程序中的输入?
- java - Hibernate - CriteriaBuilder 集合是否包含过滤器集合的任何元素
- editor - Texstudio 中的块选择或多个光标?
- android - 防止通知被其他应用读取
- asp.net - 尝试访问 Azure Web 应用程序中的特定页面时发生错误
- oracle-apex - 为一个登录 apex oracle 生成密码
- javascript - ReferenceError:显示未在 HTMLInputElement.onclick 中定义