jQuery中的最小/最大功能

时间:2011-06-05 10:05:07

标签: jquery

你怎么会发现jQuery是一个最小“page”值小于“6”的元素?

假设“page”只有数值,并且元素按“page”排序。例如:

<div id="wrapper">
  <div page="1"></div>
  <div page="2"></div>
  <div page="4"></div>      => answer
  <div page="6"></div>
  <div page="7"></div>
  <div page="9"></div>
</div>

4 个答案:

答案 0 :(得分:2)

既然你没有(最初)指定列表是否已排序,我会假设它们不是,在这种情况下你必须遍历所有元素并记录匹配的元素:

var maxEl = null;
var maxNum = 0;

$('#wrapper > div').each(function() {
    var num = $(this).attr('page');
    if (num > maxNum && num < 6) {
        maxNum = num;
        maxEl = this;
    }
});

// result is in maxEl

有关工作演示的信息,请参阅http://jsfiddle.net/alnitak/WdT2m/

答案 1 :(得分:2)

您可以使用filter选择小于6的所有选择器,然后选择最后一个。

$('#wrapper div').filter(function() {
  return $(this).attr('page') < 6;
}).last().css('color', 'red');

示例:http://jsfiddle.net/niklasvh/rFYfM/

答案 2 :(得分:0)

这适用于未排序的列表:

i = 0;
$('div').filter(function(){
    $thispage = $(this).attr('page')
    if($thispage < 6 && $thispage > i){
        i = $thispage;
        return true;
    }
    return false;
}).last()

答案 3 :(得分:0)

$("#wrapper > div[page]")
.filter( function() { return parseInt($(this).attr("page")) < 6; } )
.sort( function(a,b) { return parseInt($(a).attr("page")) - parseInt($(b).attr("page")); } )
.last();

细分:

  • 抓住所有div 立即在你的包装内 拥有page属性。

  • 过滤器仅包含那些元素 少于6个。

  • 排序 这些元素。 (如果你知道你的div被分类了,可以跳过这个。)

  • 选择找到的最后一个元素,从而选择符合条件的元素。