我正在使用Javascript搜索数据表。现在它被硬编码了。
好的,所以这是我的js代码:
$('#search').keyup(function() {
var val = '^(?=.*\\b' + $.trim($(this).val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$',
reg = RegExp(val, 'i'),
text;
$rows.show().filter(function() {
text = $(this).text().replace(/\s+/g, ' ');
return !reg.test(text);
}).hide();
});
它使文本栏搜索在下表中。 表格如下:
<input type="text" id="search" placeholder="Type to search">
<table id="table">
<tr>
<th>Naam</th>
<th>Product -</th>
<th>Locatie</th>
</tr>
<tr>
<td>Henk</td>
<td>Laptop</td>
<td>Utrecht</td>
</tr>
<tr>
<td>Klaas</td>
<td>Beamer</td>
<td>Gorinchem</td>
</tr>
<tr>
<td>Sjaan</td>
<td>Opnameapparatuur</td>
<td>Gorinchem</td>
</tr>
</table>
当我在JSfiddle中使用代码时,它可以正常工作,但是只要我在html / php中使用它就没有了。
我的结果是让它与从sql数据创建的表一起工作,但我需要它首先使用硬编码数据来确保。
编辑:可以找到JSfiddle here
答案 0 :(得分:2)
正如您所指出的那样,您在尝试加载DOM之前就已经尝试过了。
这个小提琴只是你的jQuery ready函数
http://jsfiddle.net/7BUmG/3393/
$(function(){
var $rows = $('#table tr');
$('#search').keyup(function () {
var val = '^(?=.*\\b' + $.trim($(this).val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$',
reg = RegExp(val, 'i'),
text;
$rows.show().filter(function () {
text = $(this).text().replace(/\s+/g, ' ');
return !reg.test(text);
}).hide();
});
});