只是想使用jquery将搜索可能性添加到已加载的表中,但下面的代码仅适用于第一列。我想让它适用于所有细胞。你可以检查代码并帮我找出错误:
这是我的HTML代码:
<span id="search"></span>
这是我的js代码:
$("#search").on("keyup", function () {
var value = $(this).text();
$("table tr").each(function (index) {
if (index != 0) {
$row = $(this);
$row.each(function () {
var cell = $row.find("td").text();
if (cell.indexOf(value) != 0) {
$(this).hide();
} else {
$(this).show();
}
});
}
});
});
答案 0 :(得分:2)
我不认为你需要做一个$ row.each,因为你已经在每一个中,而是在列上尝试每个:
$("#search").on("keyup", function () {
var value = $(this).text();
$("table tr").each(function (index) {
if (index != 0) {
$row = $(this);
$row.find("td").each(function () {
var cell = $(this).text();
if (cell.indexOf(value) != 0) {
$(this).hide();
} else {
$(this).show();
}
});
}
});
});
编辑:
http://jsfiddle.net/rn8dsnwm/2/
$("#search").keyup(function () {
var value = $(this).val();
if (value.length){
$("table tr").each(function (index) {
if (index != 0) {
$row = $(this);
$row.find("td").each(function () {
var cell = $(this).text();
if (cell.indexOf(value) < 0) {
$row.hide();
} else {
$row.show();
return false; //Once it's shown you don't want to hide it on the next cell
}
});
}
});
}
else{
//if empty search text, show all rows
$("table tr").show();
}
});
答案 1 :(得分:1)
我认为在尝试循环行的单元格时会遇到逻辑问题。
这应该有效:
$("#search").on("keyup", function () {
var value = $(this).val();
$("table tr:not(:first-of-type)").each(function (ix, el) {
$row = $(this);
$cells = $row.find('td');
$cells.each(function (ix2, el2) {
var cell = $(this).text();
$row.toggle(cell.indexOf(value) >= 0);
});
});
});
答案 2 :(得分:0)
对所有tr元素尝试这个:
var $rows = $('table tr');
$('#search').keyup(function() {
var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();
$rows.show().filter(function() {
var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
return !~text.indexOf(val);
}).hide();
});
答案 3 :(得分:0)
Set shpTemp = ActiveSheet.Shapes(1)
Jsfiddle:http://jsfiddle.net/hq6mg5zb/