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");
}
}