【问题标题】:Is there any neat selector for other than this with this class?除了这个之外,还有其他整洁的选择器吗?
【发布时间】:2012-06-04 03:27:24
【问题描述】:

例子:

<div>
    <A><span class="bla">test</span></a>
    <A><span class="bla">test test</span></a>
    <A><span class="bla">test test test</span></a>
</div>

只是想知道我们是否可以这样做:

$('span.bla').click(function(){
   $(this).addClass('selected').others_with_this_class().removeClass('selected');
});

或者我们真的需要制作两个不同的选择器,并一个一个地处理它们。

编辑

感谢大家的想法,我发现做了这样的事情::-)

if (!$(this).hasClass('selected'))
$(this).addClass('selected').parent().siblings('a').children('.selected').removeClass('selected');

【问题讨论】:

    标签: javascript jquery optimization jquery-selectors


    【解决方案1】:

    你是什么意思“一一处理”?

    为什么不直接从.selected 项目中删除该类,然后将该类添加到您单击的项目中:

    $('span.bla').click(function(){
       $('.selected').removeClass('selected');
       $(this).addClass('selected');
    });
    

    【讨论】:

      【解决方案2】:

      我喜欢从所有内容中清除类,然后将其添加到单个类中:

      $('span.bla').click( function() {
          $('span.bla').removeClass('selected');
          $(this).addClass('selected');
      }
      

      【讨论】:

        【解决方案3】:

        使用$.siblings():

        $('span.bla').click(function(){
            $(this).addClass('selected')
                   .parent()
                   .siblings()
                   .children('span')
                   .removeClass('selected');
        });
        

        这将找到跨度的父 (&lt;a&gt;)、它的所有兄弟姐妹以及作为这些兄弟姐妹的孩子的任何 &lt;span&gt;s,并将 .current 添加到它们。

        【讨论】:

        • 已编辑。无论如何,您应该能够弄清楚如何解决它;使用 jQuery 很简单。
        • 嗯,这看起来更好,但这会选择 a.selected,而不是 span.selcted,所以我想会更好,比如... .siblings('a').children('span.选择')
        • 不,这只会在&lt;span&gt;s 中添加/删除.selected。我正在使用$.parent(),然后使用$.children() 回退到&lt;span&gt;
        • 是的,但是因为你去了父级,你会选择一个 .selected 类的兄弟姐妹
        【解决方案4】:
        $('span.bla').click(function(){
           $('span.bla').removeClass('selected');
           $(this).addClass('selected');
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-02-09
          • 2023-01-03
          • 1970-01-01
          • 2019-12-20
          • 2015-12-08
          • 2018-12-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多