Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从输入字段中选择表中的多行_Jquery_Html Table_Dom Manipulation - Fatal编程技术网

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,它运行良好!