如何参数化javascript函数

如何参数化javascript函数,javascript,jquery,html,Javascript,Jquery,Html,我将如何将参数传递给filterText方法,因为我将在多个位置调用同一个方法,id为“filterText”,类名为“content”,这两个值我想作为参数传递 函数过滤器文本{ var rex=new RegExp$'filterText'.val; 如果rex==/all/{ 透明过滤器 }否则{ $'.content'.hide; $'.content.filterfunction{ 返回rex.test$this.text; }.表演; } } 函数清除过滤器{ $'.filterT

我将如何将参数传递给filterText方法,因为我将在多个位置调用同一个方法,id为“filterText”,类名为“content”,这两个值我想作为参数传递

函数过滤器文本{ var rex=new RegExp$'filterText'.val; 如果rex==/all/{ 透明过滤器 }否则{ $'.content'.hide; $'.content.filterfunction{ 返回rex.test$this.text; }.表演; } } 函数清除过滤器{ $'.filterText'.val; $'.content'.show; } 模块名 现金信贷 测试用例名 场景详细信息 地位 选择 通过 失败 此 路 不通 全部的 开始时间 结束时间 所用总时间 迭代计数 异常堆栈 测试用例ID 截图 通过 25/04/17 11:55:30 25/04/17 12:07:39 0h:12m:9s 1.
也许你可以这样试试:

function filterText(id, class)
     {  
         var rex = new RegExp(id);
         if(rex =="/all/"){clearFilter()}else{
             $('.'.class).hide();
             $('.'.class).filter(function() {
             return rex.test($(this).text());
             }).show();
     }
     }

将参数传递给JS函数很简单:

声明函数时,按如下方式声明:

function filterText(param1, param2)
     {  
         var rex = new RegExp($(param1).val());
         if(rex =="/all/"){clearFilter()}else{
             $(param2).hide();
             $(param2).filter(function() {
             return rex.test($(this).text());
             }).show();
     }
     }
filterText('#filterText','.content');
调用此函数时,请这样调用:

function filterText(param1, param2)
     {  
         var rex = new RegExp($(param1).val());
         if(rex =="/all/"){clearFilter()}else{
             $(param2).hide();
             $(param2).filter(function() {
             return rex.test($(this).text());
             }).show();
     }
     }
filterText('#filterText','.content');
更新


您可以将任何类型的选择器作为参数传递,它不限制您仅传递id或仅传递类作为参数。

如果您只有一个select

$(function(){
   // For your one select
   $('#select').change(function(){
    var ref = $(this);
    filterText(ref.val())
   });
});
如果希望任何具有filterText类的元素正常工作:

<input type="text" class="filterText" value=""/>

function filterText(value) {
  var rex = new RegExp(value || '');
  if (rex == "/all/") {
    clearFilter()
  } else {
    $('.content').hide();
    $('.content').filter(function() {
      return rex.test($(this).text());
    }).show();
  }
}

$(function(){
    // For any filter
   $('.filtertext').change(function(){
    var ref = $(this);
    filterText(ref.val());
   });
});

同时编辑filterText函数,使其具有额外的参数

将参数作为普通filterText ID、ClassName传递是允许多个筛选器的想法吗?但我有多个表,其中有多行,因此我想为一列设置筛选器,因此在行级别传递类名,这样,对于单个表,类名将保持唯一,而filterText方法将在每个表中的标记th处调用level@JatinLuthra如果需要多个过滤器,第二种方法可以工作,给每个过滤器输入一个公共类,并使用一个额外的属性指定过滤信息我的html中有多个表,我在第th层的select标记中调用这个filterText方法&在tr标记处传递表中所有行的类名,这将帮助我为所有表添加过滤器,所以我需要一种方法将类名从tr标记传递到这个javascript,并将id从select标记传递到这个javascriptfunction@JatinLuthra正如我在回答中提到的,您可以传递任何jQuery选择器,如SOME_ID、.SOME_类,以及带有特定类(如so tr.active等)的标记