【问题标题】:jQuery select first object from same class namejQuery从同一个类名中选择第一个对象
【发布时间】:2013-04-06 11:43:47
【问题描述】:

有些列表具有相同的类。 我想显示列表中的第一个元素

<ul class="datas">
    <li class="data-smh1">abc</li>
    <li class="data-smh1">dd</li>
    <li class="data-smh1">cc</li>
    <li class="data-sc33">abc</li>
    <li class="data-sc33">dd</li>
    <li class="data-nn61">abc</li>
    <li class="data-nn61">dd</li>
</ul>

结果:

<ul class="datas">
    <li class="data-smh1">abc</li>
    <li class="data-sc33">abc</li>
    <li class="data-nn61">abc</li>
</ul>

我尝试了 $('class[name^="data-"]',但找不到任何解决方案。
任何帮助,谢谢。

【问题讨论】:

标签: jquery html jquery-selectors


【解决方案1】:

试试

$(function(){
    $('.datas').children().each(function(i, v){
        var $this = $(this);
        $this.siblings('.' + $this.attr('class')).remove()
    });
})

演示:Fiddle

【讨论】:

    【解决方案2】:
    <ul class="datas">
        <li class="data-smh1">abc</li>
        <li class="data-smh1">dd</li>
        <li class="data-smh1">cc</li>
        <li class="data-sc33">abc</li>
        <li class="data-sc33">dd</li>
        <li class="data-nn61">abc</li>
        <li class="data-nn61">dd</li>
    </ul>
    

    JQUERY

    $(document).ready(function(){
        var seen = {};
        $('.datas li').each(function(){
        //alert($(this).text());
        var txt = $(this).attr('class');
         if (seen[txt])
            $(this).remove();
        else
            seen[txt] = true;
    
        })
      });
    

    结果

    <ul class="datas">
        <li class="data-smh1">abc</li>
    
    
        <li class="data-sc33">abc</li>
    
        <li class="data-nn61">abc</li>
    
    </ul>
    

    JSFILDDEL LINK

    【讨论】:

    • 我只是使用该逻辑,但这是针对重复元素,这是针对重复的类名..因为所有元素的结果都是相同的,还有一件事我首先在评论中发布了该链接,之后我在 jsfiddle 中制作这个解决方案。
    【解决方案3】:

    你可以试试这个:

    $(document).ready(function(){
        var curr_class = '';
        var ctr = 0;    
    
        $('.datas li').each(function(){
            if (curr_class !== $(this).prop('class')){
                curr_class = $(this).prop('class');
                ctr = 0;
            }
            if (ctr !== 0 ){
                $(this).remove();
            }
            ++ctr;
        });
    
    });
    

    jsFiddle

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      相关资源
      最近更新 更多