获取可见的最后一个跨度

时间:2018-07-16 21:18:00

标签: jquery

我正在尝试获取最后一个可见的跨度及其数据ID。

提琴:http://jsfiddle.net/billparti/9abtuexn/23/

请注意,结果应为2(最后一个可见范围),但始终保持3

var rowsetname = 'dataset1';
var spanrs = 'something_rowset_' + rowsetname;
var csetlastid = $('span[id^="' + spanrs + '"]:visible').last().attr('data-id');
$('#result').text(csetlastid);

1 个答案:

答案 0 :(得分:1)

来自:visible selector docs

  

如果元素占用了文档中的空间,则认为它们是可见的。可见元素的宽度或高度大于零。

     

具有可见性:隐藏或不透明:0的元素被视为可见,因为它们仍然占用布局中的空间。


如果您唯一的更改是在visibility属性上,则可以执行以下操作:

var rowsetname = 'dataset1';
var spanrs = 'something_rowset_' + rowsetname;

// filter out visibility:hidden
var csetlastid = $('span[id^="' + spanrs + '"]').filter(function(){
   return $(this).css('visibility') !=='hidden';
}).last().attr('data-id');

$('#result').text(csetlastid);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="something_rowset_dataset1_2_field1" style="visibility:visible" data-id="1"></span>
<span id="something_rowset_dataset1_2_field2" style="visibility:visible" data-id="2"></span>
<span id="something_rowset_dataset1_2_field3" style="visibility:hidden" data-id="3"></span>
<div id="result">test
</div>