我正在尝试获取最后一个可见的跨度及其数据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);
答案 0 :(得分:1)
如果元素占用了文档中的空间,则认为它们是可见的。可见元素的宽度或高度大于零。
具有可见性:隐藏或不透明: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>