javascript - 如果所有 Li 都被隐藏,则显示消息

标签 javascript jquery keyup jquery-filter

我想要的是,如果在 keyup() 上,如果所有 li 都被隐藏,则显示一个特定的 div。我以下是我的 Jquery 代码。目前发生的情况是,当 div 第一次满足其成功场景时就会显示,我的 fiddle 将更多地解释该场景。

 var showMessage = false;
    function filter(element) {
        var value = $(element).val();
        $(".dropd > li").each(function () {
            if ($(this).text().indexOf(value) > -1) {
                $(this).show();
            } else {
                showMessage = true;
                $(this).hide();
            }
        });
        if (showMessage == true) {
            alert(showMessage + '111');
            $('.dropd').find('#not_matches').hide();
        }
    }
 $('#txt_colors').keyup(function () {
        filter(this);
    });

以下是我的 HTML

<div id="dd2" class="wrapper-dropdown-2" tabindex="1">
   <div class="selected" style="margin-right:30px;"> select Color</div>
      <ul class="dropd"> <input id="txt_colors" type="text"/>
         <div id="not_matches" name="not_matches" style="display: none;">&nbsp;&nbsp;&nbsp;No Matching Color </div>
           <li onclick="search_ral_pantone('000000')" value="000000" style="border-right-color:#000000"><a>Black</a></li>
            <li onclick="search_ral_pantone('0000FF')" value="0000FF" style="border-right-color:#0000FF"><a>Blue</a></li>
            <li onclick="search_ral_pantone('808080')" value="000000" style="border-right-color:#808080"><a>Gray</a></li>
            <li onclick="search_ral_pantone('00FF00')" value="00FF00" style="border-right-color:#00FF00"><a>Green</a></li>
            <li onclick="search_ral_pantone('800000')" value="800000" style="border-right-color:#800000"><a>Maroon</a></li>
            <li onclick="search_ral_pantone('800080')" value="800080" style="border-right-color:#800080"><a>Purple</a></li>
            <li onclick="search_ral_pantone('FF0000')" value="FF0000" style="border-right-color:#FF0000"><a>Red</a></li>
            <li onclick="search_ral_pantone('C0C0C0')" value="C0C0C0" style="border-right-color:#C0C0C0"><a>Silver</a></li>
            <li onclick="search_ral_pantone('FFFFFF')" value="FFFFFF" style="border-right-color:#FFFFFF"><a>White</a></li>
            <li onclick="search_ral_pantone('FFFF00')" value="FFFF00" style="border-right-color:#FFFF00"><a>Yellow</a></li>
      </ul>
     </div>

fiddle : http://jsfiddle.net/13y6b7jj/1/ (只是为了了解实际发生的情况)

最佳答案

您可以通过以下代码检查是否有任何 li 可见:

$(".dropd li:visible").length

fiddle

关于javascript - 如果所有 Li 都被隐藏,则显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28345868/

相关文章:

javascript - Onclick 下载按钮到移动设备的图像

javascript - 未应用任何样式的 JQuery UI 对话框显示

javascript - 启用 "Terms and conditions"上的复选框滚动不起作用

javascript - 重新初始化 kendo ui 对象时如何处理日期选择器

Javascript 设置一个变量,该变量在每个子元素上发生变化

javascript - 如何在浏览器上无延迟地显示 "No Results"

javascript - jQuery:在除一个输入文本字段之外的所有文档上触发 keyup

javascript - 检测表单中的后期操作

javascript - 自定义 AngularJS Bootstrap 工具提示

javascript - .on ('keyup' , function(){ 仅在按键时触发