我是新的jQuery,我有一个关于获得我需要从一个变量的值的问题。更具体地说,我在html文件中有这个列表。
<ul id="menu">
<li class="mainmenu" id="newsarticles"><a href="#">News & 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() {
});
});