javascript - jQuery 检索 ID

标签 javascript jquery

我试着处理我的第一个项目,一个 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/

相关文章:

javascript - 在同一项目上多次调用时 scrollTop 跳转

jQuery 验证添加新方法

javascript - 配置特定的 JavaScript 函数以在页面上重新加载

jquery - 在哪里编写 Bower 代码来安装 Alertify?

javascript - jQuery 电子邮件正则表达式

javascript - 占位符不适用于文本字段输入

javascript - on Scroll animate scrollTop 向上移动 div 并修复它

javascript - JavaScript 中的异步函数调用

javascript - 打开并创建新帖子按钮不起作用

javascript - 使用 javascript 执行计算的两个八进制数