【发布时间】:2012-03-17 19:56:57
【问题描述】:
我的网站中有以下 JavaScript:
$(function() {
var $cells = $("td");
$("#search").keyup(function() {
var val = $.trim(this.value).toUpperCase();
if (val === "")
$cells.parent().show();
else {
$cells.parent().hide();
$cells.filter(function() {
return -1 != $(this).text().toUpperCase().indexOf(val);
}).parent().show();
}
});
});
这个例子适用于所有浏览器,所以我认为问题出在我的 HTML 某处。这是相关部分:
<div id="searchContainer">
<input id="search" type="text">
</div>
<table>
<tr>
<th>Username</th>
<th>Full name</th>
<th>Tick to select</th>
</tr>
@foreach (var user in result) {
<tr><td>@user.Username</td> <td>@user.FirstName @user.SecondName</td>
<td><input type="checkbox" name="userId" value="@user.UserId" /></td></tr>
}
我想的错误一定是在这里,因为代码在 Firefox 中完美运行,但在 Chrome 或 IE 中根本无法运行。
【问题讨论】:
-
这其中哪一部分不起作用?在框中键入会过滤 chrome 17 中的列表。
-
在 Chrome 的框中输入内容不会使用我的 HTML 过滤,使用相同的 JavaScript 函数。
-
查看 Chrome 开发者工具窗口。控制台有错误吗?
-
@Nik 刚刚使用 Firebug for Chrome 看了一下,据我所知,它没有发现任何错误。但是击键也没有发生任何事情!
-
您的模板引擎是基于 javascript 还是基于服务器端?如果它的 js 并且您在呈现 html 之前触发您的侦听器,它不会拾取所有 TD 列。
标签: javascript html forms javascript-events