你怎么会发现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>
答案 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');
答案 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被分类了,可以跳过这个。)
选择找到的最后一个元素,从而选择符合条件的元素。