- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一本供内部使用的电话簿。所有结果均显示在表格中。我曾经只是将此作为我的函数来过滤该表:
function LiveSearch() {
$('input#srch-field').on('keyup', function () {
var rex = new RegExp($(this).val(), 'i');
$('.srch-table tr').hide();
$('.srch-table tr').filter(function () {
return rex.test($(this).text());
}).show();
});
}
但我的用户显然对这个请求的功能不满意,所以他们想要一个过滤器。所以我做了一个下拉菜单,应该起到过滤器的作用。然后我看着我的函数并思考“我如何修改它,使其工作大致相同?”,所以我想出了这个:
function LiveSearch() {
$('input#srch-field').on('keyup', function () {
var rex = new RegExp($(this).val(), 'i');
var e = document.getElementById("srchFilter");
var filter = e.options[e.selectedIndex].value;
if (filter === 'all') {
$('.srch-table tr').hide();
$('.srch-table tr').filter(function () {
return rex.test($(this).text());
}).show();
} else {
$('.srch-table tr[id=' + filter + ']').hide();
$('.srch-table tr[id=' + filter + ']').filter(function () {
return rex.test($(this).text());
}).show();
}
});
}
这个想法是我选择的每个值:
<div class="form-group">
<select id="srchFilter" class="form-control">
<option value="all" selected="selected">No Filter</option>
<option value="name">Name</option>
<option value="title">Title</option>
<option value="department">Department</option>
<option value="private-phone">Private Phone</option>
<option value="work-email">Work Email</option>
<option value="work-phone-land">Work Phone Landline</option>
<option value="work-phone-mobile">Work Phone Mobile</option>
</select>
</div>
对应于我的表中的列 ID。但是,如果我的过滤器不是all
,那么它根本不执行任何过滤。我可能只是误解了正则表达式的工作原理。有人能解释一下吗?
编辑
我的表的代码作为请求:
<div class="col-lg-6" id="customtable">
<table class="table table-striped" id="tablesorter">
<thead>
<tr>
<th class="col-xs-4" id="name">
Name<span class="glyphicon glyphicon-filter"></span>
</th>
<th class="col-xs-4" id="title">
Title<span class="glyphicon glyphicon-filter"></span>
</th>
<th class="col-xs-4" id="department">
Department<span class="glyphicon glyphicon-filter"></span>
</th>
<th style="display: none;" id="private-phone">
Private Phone
</th>
<th style="display: none;" id="work-email">
Work Email
</th>
<th style="display: none;" id="work-phone-land">
Work Phone Landline
</th>
<th style="display: none;" id="work-phone-mobile">
Work Phone Mobile
</th>
</tr>
</thead>
<tbody class="srch-table" id="srch-table">
<tr>
<td class="col-xs-12"><b>Please Wait...</b></td>
</tr>
</tbody>
</table>
<div class="fl-separator"></div>
</div>
最佳答案
请注意,您正在为表元素分配重复的 ID(正如我从您的 JavaScript 代码中嗅到的那样)。 ID 在 HTML 页面中应该是唯一的,这就是您的过滤器无法按预期工作的原因。
您可以尝试分配一个类(或者建议使用 HTML 数据属性)。因此,例如,与 name
相关的 td
将具有类 name
而不是 id name
。
然后,您的 JavaScript 代码可以像这样更改,以便它可以利用 class
es 而不是 id
s:
// ... code truncated for brevity
if (filter === 'all') {
$('.srch-table tr').hide();
$('.srch-table tr').filter(function () {
return rex.test($(this).text());
}).show();
} else {
$('.srch-table tr').hide();
$('.srch-table tr').filter(function () {
return rex.test($(this).find('td.' + filter).text());
}).show();
}
// ... code truncated for brevity
请注意点选择器的使用,它与仅具有指定类的 td
的 tr
相匹配。
奖励:由于您使用的是 jQuery,因此这些行:
var e = document.getElementById("srchFilter");
var filter = e.options[e.selectedIndex].value;
可以简单地用这一行替换:
var filter = $("#srchFilter").val();
更新:
This是你的 fiddle 的 fork 版本,可以工作。
关于javascript - 使正则表达式仅基于单列过滤表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45410562/
我有一个针对单行中的单个列的mysql查询 "SELECT some_col_name FROM table_name WHERE user=:user" 执行语句$stmt->execute();后
我想创建一个应用程序,以这种格式在核心文本(滑动到下一页)中显示捆绑文本文件: 旁遮普语文本 旁遮普语音译成英语 旁遮普语翻译成英语 但我希望用户能够通过设置选项卡选择显示的语言,我知道该怎么做,即
我已经在 Angular 应用程序中设置了一个 ag-grid。我正在尝试使单列填充网格的整个宽度。 但后来我明白了。
当我在 excel 中打开我的 csv 文件时,它看起来像这样 - header 值 1值2值3值4值5 我想知道这个文件中是否真的有逗号?我知道如果我有多个列,我会看到逗号 最佳答案 您可以通过在文
我目前正在运行如下查询: SELECT a.ID, a.ContactID, a.Code, FROM tableA a JOIN (SELECT ContactID, Code FROM
当我在 excel 中打开我的 csv 文件时,它看起来像这样 - header 值 1值2值3值4值5 我想知道这个文件中是否真的有逗号?我知道如果我有多个列,我会看到逗号 最佳答案 您可以通过在文
我正在使用 codeigniter insert_batch($table, $data);我的列名称为“客户发布的评论”。 当我尝试批量插入数据时。插入查询更改为: INSERT INTO `tab
我有两个问题: 我想知道这是否是对单列 TreeView 进行搜索/过滤的正确方法。我觉得我的很多复制/粘贴可能包含不必要的东西。 QSortFilterProxyModel子类中的所有代码和sear
我有一个应用程序,我想获取多个软件包的 RPM 信息,并以令人愉悦且引人注目的方式对其进行格式化。 *繁荣*。 我的问题是 rpm 想要将数据格式化为两列,这很烦人。 命令 rpm -qi ruby
具有单列表(身份列)的目的是什么?有没有好的用例可用? 这真的是一个好习惯吗? 最佳答案 我认为人们使用它来复制 Oracle 的 SEQUENCE。基本上,他们希望他们在系统中创建的任何实体都有一个
我正在将数据库连接从 mysqli 转移到 PDO。更新时,我陷入了一个查询:在mysql中它是: $quec='designation=10 OR designation=11 OR designa
给定MySQL中的一列字符串(密码)并给定一个值N,我正在寻找一种sql方式来计算每个n-的频率gram(长度为 n 的子串)。 将代码保留在 MySQL 中很重要,因为在我拥有的其他环境中,它会导致
我对 GtkTreeView 有以下问题。 当我尝试附加列表时出现问题。这是我创建的函数: static GtkWidget *setup_list_archive(GtkWidget **wid
我是 JPA/Hibernate 的新手。假设我有这两个表: Employee (Id, Name, DeptId, ..)//DeptId 是外键。 Department (Id, DeptName
我正在调用的 REST API 返回一个数组,格式如下: ["a", "b", "c", "d"] 我的 ui-grid 需要在单列中显示这些数据条目,每行一个。 我有: $scope.items
我正在使用由 passy 创建的 Angular masonry 指令,当第一个元素的宽度几乎达到 100% 时我遇到了问题。在这种情况下,所有元素都合并在一个列中,否则我认为行为没问题。 我创建了一
我想将此嵌套数组转换为单个 pandas 数据框列,我该怎么做?有人可以帮我吗? array([array([ nan, 16.40411828, 23.671878
有一个遗留的 LAMP 应用程序,我正在将其转换为 JVM。 所讨论的问题需要一个包含@250K 记录的评分表。目前,“scoreType”列表示为tinyint,其中1 = 目标,2 = 协助1,3
我正在考虑 MySQL 5.6 InnoDB 表的以下架构。我无法决定使用哪些键: "CREATE TABLE IF NOT EXISTS `context` (" " `text_
我是一名优秀的程序员,十分优秀!