2015-04-14 59 views
2

一個div的id我有以下的HTML代碼:獲取正顯示

<div id="skills"> 
    <div class="items" id="items1" style="display:none">1</div> 
    <div class="items" id="items2" >2</div> 
    <div class="items" id="items3" style="display:none">3</div> 
    <div class="items" id="items4" style="display:none">4</div> 
    <div class="items" id="items5" style="display:none">5</div> 
</div> 

我需要訪問正在顯示的div並獲得它的id。 請讓我知道我該怎麼做?

回答

1

可以使用.not()其除去從該組匹配的元素的元素。

var divId = $("div.items").not(":hidden").prop("id"); 

Working Demo

+0

最後使用'attr'和'prop'有什麼區別。 – key2learn

+0

並感謝所有。所有的答案都很有用,並加入到我的學習中 – key2learn

+1

屬性和屬性之間的差異在特定情況下可能很重要。在jQuery 1.6之前,.attr()方法在檢索某些屬性時有時會考慮屬性值,這可能會導致行爲不一致。從jQuery 1.6開始,.prop()方法提供了顯式檢索屬性值的方法,而.attr()檢索屬性。閱讀更多,https://api.jquery.com/prop/ –

4

可以使用:visible選擇器:

var visibleId = $('.items:visible').prop('id'); // = 'items2' 
2

jQuery有一個專用的:visible選擇器。您可以使用它來匹配正在顯示的任何元素。如果他們消耗的文件空間

https://api.jquery.com/visible-selector/

元素被認爲是可見的。可見元素的寬度或高度大於零。

帶有visibility: hiddenopacity: 0的元素被視爲可見,因爲它們仍佔用佈局空間。

所以在方案中使用此,您將有這樣的事情:

var desired_id = $('.items:visible').prop('id'); 

記住,如果超過一個元素是使用.items:visible匹配,你只會得到第一匹配元素的id而不是全部。