JS新手需要Jquery的帮助

JS新手需要Jquery的帮助,jquery,Jquery,我正在尝试编写jquery函数,但我对jquery是全新的。这是我的一个非常简单的函数,我想清除所有指向未选中类的链接,但选中的链接除外: $(function() { $('li a').click(function() { $('li a').addClass('unselected'); $(this).addClass('selected'); }); }); 我该怎么做?然后,如何取消选择除具有特定名称属性之外的所有名称?以下

我正在尝试编写jquery函数,但我对jquery是全新的。这是我的一个非常简单的函数,我想清除所有指向未选中类的链接,但选中的链接除外:

$(function() 
{
    $('li a').click(function()
    {
        $('li a').addClass('unselected');
    $(this).addClass('selected');


    });


});
我该怎么做?然后,如何取消选择除具有特定名称属性之外的所有名称?以下是一个链接示例:

<li><a id="106" name="wavelength" href="#">10.6 &micro;</a></li>... set of links
  • 。。。链接集
    和另一组链接

    <li><a id="10watt" name="power" href="#">10 watt</a></li>....
    
  • 。。。。
    如果您想以具有特定名称的链接为目标,可能的选择器之一是[name='somenamehere']

    在本例中,这就足够了:
    $a.filter(“[name='somenamehere']”)

    (您可能希望以不同的方式实现属性选择器,具体取决于您要执行的操作)


    此外,如果您取消“未选择”类,这可能是一个好主意。我想你是用它来做造型的。如果是,请为所有链接指定样式,然后在其原始样式的基础上指定选定链接的样式:

    
    .menu a, .menu a:visited {
      color: #FF0000;
      text-decoration: none;
    }
    
    .menu a.selected {
      font-weight: bold;
    }
    你就快到了……:)试试这个:

        $(function()  
    { 
        $('li a').click(function() 
        { 
            $("li a[name!='wavelength']").addClass('unselected'); 
                    $(this).removeClass('unselected'); 
                    $(this).addClass('selected'); 
        }); 
    }); 
    

    针对您对其他答案之一(现已删除)的评论:

    这些LIA标记分为五列。如何仅取消选择列中的项,而保留其他项处于选中状态?我用带有名称属性的链接对它们进行了标记

    您可以根据
    中包含的
  • 链接对它们进行分组

    您可以使用jQuery搜索
    ,然后在其中:

    // best practice says you should cache the result of this search 
    // so you don't need to find it again
    var $links = $('li a');
    // attach a click function to the links
    $links.click(function() {
      // again cache it... we will use it more than once.
      var $this = $(this); 
    
      // remove selected from everything - add unselected
      $this.closest('ul').find('li a').removeClass('selected').addClass('unselected');
      // remove unselected from this link and add selected
      $this.removeClass('unselected').addClass('selected');
    });
    
    既然您说过链接组共享一个
    名称
    属性,那么请看下面的代码:

    var $links = $('li a');
    $links.click(function() {
      // store ourself as a jquery object, and get our name:
      var $this = $(this), myname = $this.attr('name');
    
      // filter $links to obtain the ones that share myname:
      $links.filter(function() {
        // we can use the DOM element "this.name" instead of $(this).attr('name')
        // to save some time here:
        return this.name == myname;
      }).removeClass('selected').addClass('unselected');
    
      $this.removeClass('unselected').addClass('selected');
    });
    
    要查找具有特定名称属性的名称,请查看如下所示的:

    $('li a[name=wavelength]'); 
    

    谢谢,赛博伙伴。我如何概括这一点,这样我就可以一列一列地在每一列中只选择一项了?嘿,舒梅尔,我不明白一列一列是什么意思。你能详细说明一下吗?横排有五列。用户从第1列和第2列中选择一个项目,依此类推。但格纳夫的回答让我找到了我想要的地方。谢谢你这么乐意帮忙。这对我来说是一个全新的领域,所以我不知道我在做什么。我讨厌别人为我写代码,但在我看到代码之前我无法学习,对吗?无论如何,谢谢。
    $('li a[name=wavelength]');