2

2つの選択ドロップダウンで行われた選択に基づいてDIVを表示/非表示にするコードがいくつかあります。これはうまく機能しています。現在、選択肢に一致するものがない場合に「結果なし」メッセージを表示しようとしています。

私のフィドル

ほぼ機能しています。問題は、「結果なし」メッセージが必要なときに表示されますが、必要なときに非表示にならないことです。どんな援助でも大歓迎です。

4

7 に答える 7

2

NoResultsクラスの内容を空にする条件が欠落しているようです。私はフィドルを次のように編集しました:

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

編集:これは機能しますが、コンテンツを直接設定するのではなく、show()/ hidden()を使用して以下のRepWhoringPeeHaaのソリューションを使用することをお勧めします。

その解決策についての私の主な議論は、htmlテンプレートに、そしてコードから、より多くのコンテンツ(「あなたの選択のためのイベントはありません。」)を保持することです。コンテンツ/コードをうまく分離すればするほど、将来的にコンテンツを更新しやすくなります。

于 2012-04-24T20:07:27.480 に答える
2

内容を何にも設定することはできません:

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

または、デフォルトで要素にテキストを追加し、NoResultsデフォルトでCSSを使用して非表示にします(display: none)。次に、表示/非表示に切り替えます

        if ($('.item:visible').length === 0) {
            $(".NoResults").show();
        } else {
            $(".NoResults").hide();
        }
于 2012-04-24T20:07:53.230 に答える
1

結果がないことを確認した後、elseステートメントを追加します。

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

更新されたjsFiddleは次のとおりです:http://jsfiddle.net/hDWAh/8/

于 2012-04-24T20:06:48.287 に答える
1
if ($('.item:visible').length === 0)
    $(".NoResults").html("<p>No events for your selection.</p>");
else   // <==============
    $(".NoResults").empty(); // <==============

更新されたフィドル

于 2012-04-24T20:07:28.453 に答える
0

1つの方法は、毎回表示を切り替えることです。

http://jsfiddle.net/hDWAh/7/

于 2012-04-24T20:07:02.893 に答える
0

コードは上から下に実行されるため、常に非表示から始め、表示noresultする必要がある場合は、次のように表示します。

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

于 2012-04-24T20:07:34.220 に答える
0
if ($('.item:visible').length === 0) {
    $(".NoResults").html("<p>No events for your selection.</p>");
}
else{
 $(".NoResults").html("");
}
于 2012-04-24T20:07:52.240 に答える