可搜索的复选框列表无效

时间:2014-02-01 12:31:04

标签: javascript jquery

这是我写给achive searchable复选框列表的脚本,但由于某种原因它没有表演请帮忙!

它应该搜索无论情况并且应该删除空行

$(function() {
$('#filter').on('keyup', function() {
    alert('h');
    var query = this.value;
    $('.checkboxLabel').each(function(i, elem) {
          if (elem.value.indexOf(query) != -1) {
              $(this).closest('label').show();
          }else{
              $(this).closest('label').hide();
          }
    });
});

这是小提琴http://jsfiddle.net/xHxWt/

更新:谢谢大家:如果有人需要相同的话,Down是完全正常的小提琴。

http://jsfiddle.net/xHxWt/9/

2 个答案:

答案 0 :(得分:1)

你错过了jQuery插件(你已经发现了)。 此外,label没有值,您需要使用.text()

尝试:

$(function () {
    $('#filter').on('keyup', function () {
        var query = this.value;
        $('.checkboxLabel').each(function (i, elem) {
            if ($(this).text().indexOf(query) != -1) {
                $(this).show();
                $(this).prev(':checkbox').show();
            } else {
                $(this).hide();
                $(this).prev(':checkbox').hide();
            }
        });
    });
});

Fiddle

更新

隐藏/显示checkbox

答案 1 :(得分:0)

您可以尝试使用此代码隐藏标签以及复选框

 $(function() {
        $('#filter').on('keyup', function() {

            var query = this.value;
            $('.checkboxLabel').each(function(i, elem) {
 if ($(this).text().indexOf(query) != -1) {
$(this).closest('label').show();
$(this).prev().show();

                } else {
$(this).closest('label').hide();
$(this).prev().hide();
                }
            });
        });

    });

还有多个选择或单个插件。您也可以尝试这个。 http://harvesthq.github.io/chosen/