jQuery从变量中选择一个值



我是新的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');

我怎么能只得到一个值?

感谢您的帮助。

您可以使用"each"选择器为这两个项添加click功能:

$('#menu li').each( function(index) {
    $(this).click( function() {
      var id = $(this).attr('id');
      // do whatever you need to here
    });
});

你需要

$('#menu').click(function(evt) {
  var currentId = $(evt.target).closest('li').attr('id');
});

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

$('#menu li').each( function() {
    // add click method on this element ($(this))
    $(this).click( function() {
    });
});

最新更新