示例:
<div id="parent">
<div id="1" style="display:block"></div>
<div id="23" style="display:block"></div>
<div id="42" style="display:block"></div>
<div id="32" style="display:none"></div>
</div>
根据这个例子,我想获得div id = 42的id,它位于倒数第二的位置。我想找到显示块的div并从最后找到。
答案 0 :(得分:1)
你可以通过这种方式找到它
$("#parent div[style*='display:block']'").last().attr("id")
请参阅jsfiddle http://jsfiddle.net/UhzRU/4/
如果你想找到所有可见的div(不仅是display:block),最好还是使用这个
$("#parent div:visible").last().attr("id")
答案 1 :(得分:1)
我想从最后到第一个 div获取显示块的div的ID?
$(function(){
var ids = [];
$('#parent > *').filter(function(){
return this.style.display === 'block';
}).each(function(){
ids.unshift(this.id);
});
console.log(ids)
});
答案 2 :(得分:1)
在您的情况下,您可以使用:
var last_id = $('div:visible').last().attr('id');
答案 3 :(得分:0)
这适用于您的测试HTML
x = $('#parent div').filter(function() {if ($(this).css('display') == 'block') return $('this')});
x = x[x.length - 1];
x
现在是display: block;
答案 4 :(得分:0)
使用nth-last-child函数:这是一个链接
http://benalman.com/projects/jquery-misc-plugins/#nth-last-child
(function($){
'$:nomunge'; // Used by YUI compressor.
$.fn.queueFn = function( fn ) {
var i,
that,
args = Array.prototype.slice.call( arguments, 1 );
if ( typeof fn === 'boolean' ) {
if ( fn ) {
that = this;
i = this.length;
}
fn = args.shift();
}
fn = $.isFunction( fn ) ? fn : $.fn[ fn ];
return this.queue(function(){
!--i && fn.apply( that || this, args );
$.dequeue( this );
});
};
})(jQuery);
var elems = $('#parent div:nth-last-child(2)');
alert(elems.attr('id'));
答案 5 :(得分:0)
我希望这有效
var reqId = ""
var child = $("#parent").children().last();
while($(child).css("display")!="block" && $(child).length!=0){
child = $(child).prev();
}
if($(child).length!=0){
reqId = $(child).attr("id");
}