我想得到div的id,它是从最后到第一个div的显示块?

时间:2012-03-29 05:56:39

标签: javascript jquery html

示例:

<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并从最后找到。

6 个答案:

答案 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?

here's a demo

$(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;

的最后一个div

答案 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");
}