天天看点

Jquery对checkbox搜索的实现

checkbox 和 label组成的选项由于checkbox和label是两个单独的元素,所以在对其进行搜索得时候,样式会出现一些问题,比如将lable的值和输入框输入的值做比较,如果label中存在input输入的元素则显示label和checkbox

常用的做法则不存在的label会被隐藏但checkbox还是会显示,而且由于td和tr样式的要求,会出现断层,不联系显示。所以对此的处理办法如下

function Search() {
        //得到输入框输入的值
            var filter = document.getElementById("inputValueID").value.toUpperCase();
            //得到选项中的label标签
            var values = $("#Search label");
            //得到checkbox标签
            var check = $("#Search input");
            var length = values.length;
            for (var i = 0; i < length; i++) {
                //如果字符串不存在则返回-1,反之则表示存在
                if (values[i].innerHTML.toUpperCase().indexOf(filter) != -1) {
                    values[i].style.display = " ";
                } else {
                    //不存在的元素则直接remove
                    values[i].remove();
                    check[i].remove();
                }
            }
            if (filter.length == 0) {
                //并且当搜索值为空的时候局部刷新,重新显示所以的选项,注意 #Search前面有个空格不然会报错
                $("#Search").load(location.href + " #Search");
            }

        }