0

我是 jQuery 新手,我在从变量中获取我需要的值时遇到问题。更具体地说,我在 html 文件中有这个列表。

<ul id="menu">
<li class="mainmenu" id="newsarticles"><a href="#">News &amp; articles</a>

    <ul id="newsarticles">
        <li class="submenu" id="news"> <a href="#">News</a>

        </li>
        <li class="submenu" id="articles"> <a href="#">Articles</a>

        </li>
    </ul>
    <li class="mainmenu" id="contactus"><a href="#">Contact Us</a>
    </li>
</ul>

现在我想对主菜单和子菜单使用相同的功能。

$("#menu li").click(Menu_function);

我的问题是,当我单击子菜单时,变量 $(this) 有两个值。一个用于子菜单内的 li,一个用于主菜单的 li。

现在我想在我的函数中做这样的事情:

var currentId = $(this).attr('id');

我怎么能只得到一个值?

任何帮助表示赞赏。

4

3 回答 3

1

您可以使用“每个”选择器将点击功能添加到这两个项目:

$('#menu li').each( function(index) {
    $(this).click( function() {
      var id = $(this).attr('id');

      // do whatever you need to here
    });
});
于 2013-03-01T19:35:54.037 回答
1

你会想要

$('#menu').click(function(evt) {
  var currentId = $(evt.target).closest('li').attr('id');
});
于 2013-03-01T19:35:02.723 回答
0

您可以使用jquery 的每种方法来遍历它们并在它们上添加 onclick。类似于 dcp 在他的回答中提到的内容:

$('#menu li').each( function() {
    // add click method on this element ($(this))
    $(this).click( function() {
    });
});
于 2013-03-01T19:39:50.137 回答