Jquery 从输入字段中选择表中的多行
我正在尝试应用一个到多个过滤器,以便根据Jquery 从输入字段中选择表中的多行,jquery,html-table,dom-manipulation,Jquery,Html Table,Dom Manipulation,我正在尝试应用一个到多个过滤器,以便根据输入字段的值显示表中的特定行 我知道slice()方法允许我们执行此过程,但当使用多个值时,我不知道如何精确地管理多个值的结构以实现所需的结果 例如,如果值字段对应于1,5-10,15,则会显示第1行、第5-10行和第15行。要知道,值字段的顺序并不重要。例如,这可能看起来像5-10,15,20-30,19或2,5,8-10,11-15 以下是我到目前为止所做的尝试: for(设i=0;i您可以首先检查值是否有,其中的表示多个值,然后您需要分割输入值,然
输入
字段的值显示表中的特定行
我知道slice()
方法允许我们执行此过程,但当使用多个值时,我不知道如何精确地管理多个值的结构以实现所需的结果
例如,如果值字段对应于1,5-10,15
,则会显示第1行、第5-10行和第15行。要知道,值字段的顺序并不重要。例如,这可能看起来像5-10,15,20-30,19
或2,5,8-10,11-15
以下是我到目前为止所做的尝试:
for(设i=0;i您可以首先检查值是否有,其中的表示多个值,然后您需要分割输入值,然后使用for循环,并在每次迭代时检查i
的值,如果有-
,则取决于jquery的使用:eq
或拼接
方法
演示代码:
for(让i=1;i这样做的一种方法是将输入拆分到一个数组中。从那里,您可以使用正则表达式来确定用户是否要查找单行索引或范围。然后您可以使用:eq()
以相关行为目标并显示它们。尝试以下操作:
//HTML设置的演示代码。。。
让行=[];
for(设i=0;i{
让matches=value.match(/^(\d+)-?(\d+)?$/);
if(匹配项和匹配项[2]){
//范围。。。
let from=Math.min(匹配[1],匹配[2])-1;
设to=Math.max(匹配[1],匹配[2])+1;
$rows.filter(`tr:eq(${from})`).nextUntil(`tr:eq(${to})`).addBack().show();
}else if(匹配项和匹配项[1]){
//单身。。。
$rows.filter(`:eq(${matches[1]-1})`).show();
}否则{
value&&console.log(`${value}-无效`);
}
});
});
数据
数据
数据
非常感谢您的解决方案@Rory McCrossan,它工作得很好!您只是忘了在正则表达式的第二组中添加“+”量词以匹配两位数;)事实上-答案已更新!非常感谢您的解决方案@Swati,它运行良好!