我试着处理我的第一个项目,一个 Accordion 菜单。我已经为每个需要显示/隐藏一类 .menu 和一个 id 的项目设置了。
在尝试检索每个元素的 ID 时,我使用了以下语句:
var $currentId = $('ul.menu').attr('id');
唯一的问题是,这似乎只检索第一个元素的 ID。任何人都可以告诉我如何检索所有 It 将它们存储在变量中。我打算使用 if 语句在单击时检查每个特定的 id。谢谢!
编辑:看来我被误解了我必须做的是我将从头开始:
这是我的 HTML:
<ul id="container">
<li class="select"><a href ="#">Downloads</a></li>
<li >
<ul class = "menu" id="first" >
<li>
<a href ="#">iTunes</a>
</li>
<li>
<a href ="#">iTunes</a>
</li>
</ul>
</li>
<li class="select">
<a href ="#">Products List </a>
</li>
<li>
<ul class = "menu" id="second" >
<li>
<a href ="#">iTunes</a>
</li>
<li>
<a href ="#">iTunes</a>
</li>
</ul>
</li>
我必须做的是,当我单击具有 select 类的 li 时,我必须使具有 menu 类的 ul 出现。我想如何执行此操作以检索 ul.menu 的所有 ID 并将它们存储在一个变量中,当我单击任何 li.select 时,底层的 ul 应该显示。
最佳答案
使用each
循环获取每个元素的id。在循环中,只需使用 this.id
即可获取元素的 ID,其中 `this 表示 dom 元素。
$('ul.menu').each(function(){
alert(this.id);
});
如果你想将所有元素的 id 放入一个数组中,你可以使用 jQuery map
方法。
var Ids = $.map($('ul.menu'), function(){
return this.id;
});
map()
将数组或对象中的所有项转换为新的项数组。 Ids
将包含所有元素的 ID。
然后您可以使用 $.inArray
在其中搜索特定的 id。如果在数组中找不到,它将返回其索引或 -1。
if($.inArray("someId", Ids) != -1){
//Id found in the array
}
关于javascript - jQuery 检索 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9267304/