Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
Javascript 在jQuery筛选器函数中使用动态创建的变量_Javascript_Jquery_Filter_Filtering - Fatal编程技术网

Javascript 在jQuery筛选器函数中使用动态创建的变量

Javascript 在jQuery筛选器函数中使用动态创建的变量,javascript,jquery,filter,filtering,Javascript,Jquery,Filter,Filtering,同时了解如何创建基于计数的变量列表(请参阅) 但是现在我还需要知道如何在一个过滤器函数中使用这个动态变量列表,到目前为止,这个过滤器函数是这样的: $("div.item") .filter(function( index ) { return $(this).data("sample1") == samplevariable1 && $(this).data("muster1") == mustervariable1; }).css( "border"

同时了解如何创建基于计数的变量列表(请参阅)

但是现在我还需要知道如何在一个过滤器函数中使用这个动态变量列表,到目前为止,这个过滤器函数是这样的:

$("div.item")
  .filter(function( index ) {
  return $(this).data("sample1") == samplevariable1 &&
         $(this).data("muster1") == mustervariable1;
}).css( "border", "3px double red" );
可以有1到x个动态创建的变量,而不是SampleVariable1、SampleVariable2

如何重写现有的筛选函数,以便根据需要将其用于尽可能多的变量

谢谢你的帮助

JSFiddle:

假设您希望根据匹配的一些生成值突出显示DIV列表 在以下基于的解决方案中,您将发现:

  • 一个生成器-函数,用连续数字填充两个数组(最多生成N个值)。请参阅对相应问题的回答数组方法
  • 一个修改-函数,模拟先前生成的值的一些更改(正如您所说,这可能发生在脚本中)
  • 一个筛选并突出显示-函数,该函数使用jQuery(对于类为“item”的DIV元素)选择HTML元素,并根据其数据属性与相应数组元素的匹配对其进行筛选。过滤后的HTML元素将使用指定的CSS边框突出显示
注:不同的索引
  • JS中的数组通常以0(第一个元素)开始,以N(其中数组有N+1个元素)结束
  • HTML的DIV元素(即
    data-sample1
    data-muster1
    )中的数据属性从1开始编制索引。因此,该解决方案定义了一个特殊的索引变量:
    let divIndex=i+1
/*N:用于生成N个初始值作为数组*/
常数段计数=2;
/*包含两个动态生成的数组*/
var generatedData={elementscont:0,sample:[],muster:[]};
/*生成动态变量:
创建两个名为“sample”的数组和
内部样本集合集合。这些数组中的每一个都填充有ElementScont元素(因此可以将元素从0索引到ElementScont-1)*/
函数生成器值(SampleMusterArray、ElementScont){
for(设i=0;i

第一组
第2组

第3部分
您能提供工作小提琴吗?它更有助于解决您的问题构造“动态变量名”的概念层出不穷,几乎100%的情况下都是对JavaScript习惯用法的误解和/或未能认识到简单数组的适用性。为什么不能使用一个“simpleVariable”数组和一个数字索引?@prasanth我添加了一个fiddlenow@Pointy我现在加了一把小提琴。怎么能让这更容易…?这太棒了!你不仅解决了我的问题,而且还一步一步地描述了如何去做,这样我就可以从中学习。真是太棒了,如果你在同一间办公室,我会给你买杯咖啡或别的什么。。再次感谢!!