我正在尝试应用以下jquery点击功能但由于某种原因似乎无法使选择器正确,即:
$("ul.menu li a").click(function(){
$("ul.menu li").find("a").removeAttr("id");
$(this).attr("id" , "current" );
});
这是我的HTML代码,我试图将其应用于,我,e,:
<div id="sidebar">
<ul class="menu noaccordion">
<li>
<a href="#" id="current" class="topm">Home</a>
</li>
<li>
<a href="#" class="topm">About Us</a>
</li>
我的目标是尝试使用id = current设置当前菜单。
非常感谢任何帮助使jquery选择器正确无误。
感谢。
答案 0 :(得分:3)
这个怎么样?
$("ul.menu li a").click(function(){
$(".topm").attr('id', '');
$(this).attr("id" , "current" );
});
答案 1 :(得分:0)
我不会删除元素的ID。 ID属性旨在表示DOM中的单个元素。你应该把它真的应用于一个类:
$("ul.menu li a").removeClass("currentMenu");
$(this).addClass("currentMenu");
所以在你的例子中: -
$("ul.menu li a").click(function() {
$("ul.menu li a").removeClass("currentMenu");
$(this).addClass("currentMenu");
});
您不需要使用每个,因为removeClass操作将应用于选择器的每个jquery结果。
答案 2 :(得分:0)
我建议你使用一个类名来表示选择了一个菜单而不是id:
<ul>
<li>
<a href="#" class="topm selected">Home</a>
</li>
<li>
<a href="#" class="topm">About Us</a>
</li>
</ul>
然后您的点击功能可能如下所示:
$('ul a').click(function() {
$('ul a').removeClass('current');
$(this).addClass('current');
});
答案 3 :(得分:0)
感谢所有人的帮助,但我设法从原始代码加上最后一行添加了.find(“a”),这解决了我的问题,即
$("#sidebar ul.menu li").click(function() {
$("ul.menu li").find("a").removeAttr("id");
$(this).find("a").attr("id" , "current" );
});
再次感谢。