3
HTML:突出TD文本搜索与输入
<input type='text' id='search'>
<table class='searchtbl'>
<tr><th>ID</th><th>DESCRIPTION</th></tr>
<tr><td>1</td><td><input type='text' value='FROG'></td></tr>
<tr><td>2</td><td><input type='text' value='MOUSE'></td></tr>
<tr><td>3</td><td><input type='text' value='CAT'></td></tr>
</table>
CSS:
.highlighted {
background-color: yellow;
}
我想强调的是包含搜索项的<td>
,羯羊它是在td或输入中,从#search
加入.highlighted
类到它:
的jQuery:
$("#search").keyup(function() {
var data = this.value.toUpperCase().split(" ");
$(".searchtbl").find("tr").not("tr:first").find("td").each(function (index, elem) {
var $elem = $(elem);
for (var d = 0; d < data.length; ++d) {
// Highlight
if ($elem.text().toUpperCase().indexOf(data[d]) != -1) {
$elem.addClass('highlighted');
} else {
$elem.removeClass('highlighted');
}
}
})
})
出于某种原因,没有突出的单元格。
https://jsfiddle.net/fabriziomazzoni79/zpaLv4pm/
在您面临的确切问题之外,您可以做出一些小改进。首先用''包装你的标题行,其他行用'
',那么你可以做'$(。searchtbl).find(“tbody tr”)''而不需要'.not(“tr:first”)' – freefaller另外,如果您试图突出显示多个项目,那么您的代码稍有缺陷。您将基于'data'数组中的每个单独项添加和删除类。这意味着如果您添加该类是因为您已经找到数组中的第一个单词,那么如果您不在数组中的第二个单词中找到该单词,则会立即将其删除 – freefaller
回答
你的问题是什么,该文本不是直接的
td
元素里面,但里面的元素里面输入。因此,只需更换:与
https://jsfiddle.net/zpaLv4pm/6/
来源
2016-02-12 08:26:07 KWeiss
约
来源
2016-02-12 08:25:01 Plebsori
看,这就是工作的代码,我加入。 你的问题是你只在td搜索文本。
但在里面td你有输入标签你忘了搜索。 你需要搜索它。
所以我有正确的,请看看这将工作。
可能,这将有助于
来源
2016-02-12 08:29:40 Rahul
简短的回答是: 搜索 “输入”,而不是 “TD” 并使用 “VAL()” 而不是“文本()”
https://jsfiddle.net/nc2k21gt/
来源
2016-02-12 08:35:03
相关问题