我有一个包含3列(联系人,部门,电话号码)的表格,每个扇区单元格将包含以下范围内的大量数据:(确切格式没有引号)
“1003,1005-29 / 36/38 / 49,4587-99,3301 / 21,50123,9900-04 / 10-14 / 20/30 / 41-44”
有没有办法在网页上添加过滤器(文本框)以便快速查找?
例如,如果我输入“9912” - >它会找到字符串:“9900-04 / 10-14 / 20/30 / 41-44”并突出显示它。
注意:我无法控制表格(该列或整个表格没有ID /类),搜索整个网页就可以了,其他地方没有重复信息。
有人能指出我的方向吗? jQuery的?
答案 0 :(得分:0)
如果表每次都出现在DOM中的相同位置,那么您仍然可以获取数据。如果是这种情况,我认为你将不得不搜索扩展数字。用于搜索压缩数字格式的正则表达式可能非常复杂。不要忘记在页面上保留对原始数据的引用,以便在找到匹配项时突出显示它。
答案 1 :(得分:0)
jQuery将帮助您处理文本框的交互,但是为了处理字符串和提取数据(即它们匹配的整数),您将需要一些繁重的处理(使用正则表达式,String.indexOf()和一些循环) 。最好在页面加载时对所有这些处理进行处理并将结果缓存到某处,但是根据要处理的字符串数量,这可能会暂停用户界面一段时间,但假设这不是' ta问题那么代码有点像这样可以突出正确的结果
var dataCache = {};
$(selector to collect all your strings).each(function() {
var string = $(this).html();
var matches = yourParserWhichreturnsAnArrayOfIntegers(string);
for(var i = 0, il = matches.length;i<il;i++) {
if(dataCache[matches[i]]) {
dataCache[matches[i]].push(this);
} else {
dataCache[matches[i]] = [this];
}
}
});
$(yourtextbox).change(function() {
$(selector to collect all your strings).removeClass("highlighted");
var matches = dataCache[$(this).val()];
if (matches) {
for(var i=0,il=matches.length;i<il;i++){
$(matches[i]).addClass("highlighted");
}
}
});