由于搜索操作,更改表格文本的颜色
Change color of table text due to search operatives
我有通过动态方式更新的表。我想在搜索操作中实时将特定文本更改为彩色文本。
在这个例子中,正如您所看到的,可以通过智能的方式使它们对所有文档都是丰富多彩的。
第二个示例完美地展示了如何为table
创建实时搜索引擎。
现在,问题来了:有可能让实时搜索的结果充满色彩吗?不是整列或整行。我只需要更改input
的匹配value
的颜色value
。长话短说,我该如何修改第二个例子?
这是代码:http://jsfiddle.net/e2106b62/2/
我在HTML:中使用过的经典表格
<table style="width:100%">
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
<input id="search">
JS我正在尝试用于搜索(你可以在第二个示例链接中找到):
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();
});
我需要在搜索模块中实现的另一个JS:
$(this).css('color', 'red');
在您的示例的基础上,这就完成了任务。
工作小提琴
var $cells = $('#table td');
$('#search').keyup(function() {
var input = $(this).val();
var val = '^(?=.*''b' + $.trim(input).split(/'s+/).join('''b)(?=.*''b') + ').*$',
reg = RegExp(val, 'i'),
text;
$cells.show().filter(function() {
text = $(this).text().replace(/'s+/g, ' ');
if(!reg.test(text) || input == ''){
$(this).css('color','black');
} else {
$(this).css('color','green');
}
});
});
body {padding: 20px;}
input {margin-bottom: 5px; padding: 2px 3px; width: 209px;}
td {padding: 4px; border: 1px #CCC solid; width: 100px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="search" placeholder="Type to search">
<table id="table">
<tr>
<td>Apple</td>
<td>Green</td>
</tr>
<tr>
<td>Grapes</td>
<td>Green</td>
</tr>
<tr>
<td>Orange</td>
<td>Orange</td>
</tr>
</table>
只是想添加一个不同的高亮选项。这样,它将只突出显示匹配的文本,不区分大小写。您可以更改css类,使其以您想要的方式高亮显示,就像更改background-color
一样。
工作JSFiddle
$('#search').keyup(function() {
$(".highlight").removeClass("highlight");
var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();
$('table tr').hide().filter(function() {
var text = $(this).text().replace(/'s+/g, ' ').toLowerCase();
return ~text.indexOf(val);
}).show().find("td").each(function(){
var start = $(this).text().toLowerCase().indexOf(val);
if(start !== -1){
var end = val.length;
var start_text = start != 0 ? $(this).text().substring(0,start) : "";
var end_text = $(this).text().substring(start + end);
var match = $(this).text().substring(start, start + end);
$(this).html(start_text+'<span class="highlight">'+match+'</span>'+end_text);
}
});
});
相关文章:
- 将HTML表格导出到带有文本和图像的excel中
- 如何将表格中的文本添加到使用按钮输入的文本区域
- 单击每个表格行中的复选框时启用文本框
- Mvc表格如何更改文本的颜色条件
- 设置“;将标签视为文本“;通过脚本将Google电子表格图表的值设置为true
- “搜索”文本仅考虑表格中的最后一列
- 在表格或所需位置下方弹出文本
- 与表格中的文本完美对齐
- 在输入字段之前提取表格单元格中的文本
- 循环通过表格查找第一个具有 CSS CSSstablelisttdselect 的 TD 文本
- 使用外部 javascript 更改多个表格单元格中的文本
- 是否可以使用 javascript 读取文本或电子表格文件
- JQuery 显示来自可见 HTML 表格单元格的文本的串联列表
- 如何使用JavaScript在HTML表格中获取td内部的链接文本
- jQuery将文本添加到放置在表格单元格中的图像中
- 如何防止 td 中的文本破坏表格的对齐方式
- 根据单元格内容更改表格行的文本颜色,仅使用 css
- 使用 javascript 将表格单元格中的文本制作到 URL
- 从 html 表格单元格中获取内容值,并使用 javascript 使其显示在文本框中
- 由于搜索操作,更改表格文本的颜色