jQuery选择器单击“功能帮助”

时间:2010-07-16 13:44:57

标签: jquery

我正在尝试应用以下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选择器正确无误。

感谢。

4 个答案:

答案 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" );
    });

再次感谢。