2017-04-18 16 views
0

不需要的属性我有两个属性data-numdata-firstdata-first01,我想跳过这些元素进行排序,如果data-first1jQuery的跳过具有某种

<div class="container"> 
    <div class="item" data-num="99" data-first="0"></div> 
    <div class="item" data-num="55" data-first="1"></div> 
    <div class="item" data-num="22" data-first="0"></div> 
</div> 

<script> 
    var $wrapper = $('.container'); 
    $wrapper.find('.item').sort(function (a, b) { 
    if(a.dataset.first == 1){ 
     a.remove(); 
    } 
     return +b.dataset.num - +a.dataset.num; 
    }) 
    .appendTo($wrapper); 
</script> 
+0

显示HTML藏汉请 – Red

+0

为此,你可以使用jQuery.uniqueSort()。 –

+0

@RichardMauritz添加了html代码 –

回答

2

您正在寻找attribute selectors

在这种情况下,这将起作用。

$wrapper.find('.item[data-first=0]') 

但这样会如果你曾经有一个data-first=2值这个

$wrapper.find('.item[data-first!=1]') 

的差异会事宜。如果它只有0或1,那么使用哪个版本并不重要。

因此,最终的脚本应该是这样的:

var $wrapper = $('.container'); 
$wrapper.find('.item[data-first!=1]').sort(function (a, b) { 
    return +b.dataset.num - +a.dataset.num; 
}) 
.appendTo($wrapper);