2016-01-14 60 views
0

我用我的畫廊下面的腳本:動態隱藏沒有圖像照片畫廊

<div class="photogallery"> 
    <div class="Spacer"></div> 
    <div style="padding:10px 15px 0;"> 
    <div class="LuauPackages"> 
     <div class="GreenLrg" style=" display:inline- 

block;vertical-align:top;">Gallery</div> 
     <div class="arrow arrow-down"></div> 
     <div class="arrow arrow-right"></div> 
    </div> 
    <div class="LuauPackCont"> 
     <asp:Literal id="litPhotos" Runat="server"></asp:Literal> 
    </div> 
    </div> 
</div> 

向下滾動,它說:「畫廊」 https://www.hawaiidiscount.com/oahu/luaus/hilton-waikiki-starlight.htm

頁因爲這是一個動態生成的腳本它會出現在所有頁面上,包括那些沒有畫廊的頁面,例如 - https://www.hawaiidiscount.com/activities/oahu/surfing/north-shore-tour.htm

我的問題是如何動態設置.photogallery {display:none}爲所有頁面在沒有畫廊?

一個常見的事情是,所有帶有畫廊的頁面都有每張照片的類名 - 底部照片,因此可以編寫一個腳本,說明如果在頁面上找不到名爲bottomphotos的類,請將.photogallery {顯示:無}

回答

2

我相信這大概是你想要什麼:

$(function() { 
    // Handler for .ready() called. 
    if($('.bottomphotos').length === 0) { // if you cannot find any elements with class name of bottomphotos 
    $('.photogallery').hide(); // then hide the photogallery element 
    } 
}); 

希望這有助於!

+0

唯一的問題是它只有當我添加內聯代碼時纔有效。如果我將其添加到其中一個js文件中,它不起作用。我甚至創建了一個單獨的hidegallery.js來測試這個,但仍然不起作用。 – Parlanchina

+0

如果您嘗試在hidegallery.js中檢查「bottomphotos」的行上放置斷點,是否會找到「bottomphotos」HTML元素?如果沒有,那麼我懷疑在你的頁面被渲染之前JS正在被執行。如果是這種情況,您可能需要查看:https://api.jquery.com/ready/。我編輯了我的答案以反映這一點。 –