2012-04-24 56 views
1

我已經根據在2選擇下拉列表中做出的選擇顯示/隱藏DIV。這很好。現在,我試圖在沒有任何選項匹配時顯示「無結果」消息。jQuery檢查隱藏的DIV然後顯示消息

My Fiddle

它幾乎工作。問題是,「無結果」消息顯示何時需要,但不應該隱藏。任何援助將不勝感激。

 if ($('.item:visible').length === 0) { 
      $(".NoResults").html("<p>No events for your selection.</p>"); 
     } 
     else $(".NoResults").html(""); 

這是你更新的jsfiddle:

+2

您應該始終在您的問題中包含相關代碼。這樣,如果您鏈​​接的文件/頁面不再存在,您的問題仍然存在,並且可能對將來的其他人有用。 – 2012-04-24 20:07:08

+0

@Psykopup,你已經得到了很多合理的迴應,並沒有投入任何東西或選擇了答案。你應該考慮這兩個。 – Kristian 2012-04-24 20:12:54

+0

善良@克里斯蒂安。我發佈了這個,並在7分鐘內得到了答案。然後,我不得不等待7分鐘來標記我收到的第一個答案。 – Psykopup 2012-04-24 20:33:08

回答

2

您似乎缺少一個條件來清空NoResults類的內容。我編輯的小提琴是:

if ($('.item:visible').length === 0) { 
    $(".NoResults").html("<p>No events for your selection.</p>"); 
} else { // NEW ELSE CLAUSE 
    $(".NoResults").empty(); 
} 

編輯:雖然這個工程,我建議使用下面用show RepWhoringPeeHaa的解決方案()/隱藏(),而不是直接設置的內容。

我對這個解決方案的主要觀點是它在html模板中保留了更多的內容(「沒有選擇任何事件」),並且不包含代碼。分離你的內容/代碼越好,未來更容易更新內容。

1
if ($('.item:visible').length === 0) 
    $(".NoResults").html("<p>No events for your selection.</p>"); 
else // <============== 
    $(".NoResults").empty(); // <============== 

Updated Fiddle

0

Becouse代碼從上到下拼命地跑,開始總是隱藏noresult,當它應該顯示,只顯示它是這樣的:

http://jsfiddle.net/hDWAh/4/

0
if ($('.item:visible').length === 0) { 
    $(".NoResults").html("<p>No events for your selection.</p>"); 
} 
else{ 
$(".NoResults").html(""); 
} 
2

您可以是set the contents to nothing

 if ($('.item:visible').length === 0) { 
      $(".NoResults").html("<p>No events for your selection.</p>"); 
     } else { 
      $(".NoResults").html(''); 
     } 

或者只是簡單地將文本添加到NoResults元素默認情況下並使用CSS默認隱藏(display: none)。 And then toggle to display/hide

 if ($('.item:visible').length === 0) { 
      $(".NoResults").show(); 
     } else { 
      $(".NoResults").hide(); 
     }