jQuery过滤表包括<select> <option>单元格

时间:2015-12-17 06:05:54

标签: javascript jquery select filter html-table

我是jQuery的新手。 我有一个包含&lt; select&gt;&lt; option&gt;的表格在下面的单元格中标记。 &LT; HTML&GT; &lt; input type =“text”id =“searchInput”&gt; &lt; table border = 1&gt;  &LT; THEAD&GT;   &LT的第i; ID&LT; /第&GT;&LT的第i;姓名&LT; /第&GT;&LT的第i;位置&LT; /第&GT;  &LT; / THEAD&GT;  &lt; tbody id =“fbody”&gt;   &LT; TR&GT;     &LT; TD→1&LT; / TD&GT;     &LT; TD&gt;一种与LT; / TD&GT;     &LT; TD&GT;&LT;选择&GT;         &lt;选择选项&gt;前&lt; /选项&gt;         &LT;选项&GT;中心&lt; /选项&GT;         &LT;选项&GT;背部&LT; /选项&GT;         &LT; /选择&GT;     &LT; / TD&GT;   &LT; / TR&GT;   &LT; TR&GT;     &LT; TD&GT; 2'; / TD&GT;     &LT; TD&GT; B&LT; / TD&GT;     &LT; TD&GT;&LT;选择&GT;         &LT;选项&GT;前部和LT; /选项&GT;         &lt;选择选项&gt;中心&lt; /选项&gt;         &LT;选项&GT;背部&LT; /选项&GT;         &LT; /选择&GT;     &LT; / TD&GT;   &LT; / TR&GT;  &LT; / tbody的&GT; &LT; /表&gt; &LT; / HTML&GT; 我发现了一个像下面这样的jQuery代码,我试图过滤上面的表格。但它在&lt; select&gt;&lt; option&gt;上的效果不佳细胞。我想知道如何使代码工作以过滤以获得选定的值。 我想要做的是,当我在输入框中键入“center”时,只显示第二行。 &LT;脚本&GT; $(“#searchInput”)。keyup(function(){     console.log(“value =%o”,this.value);     //拆分searchInput的当前值     var data = this.value.split(“”);     //创建行的jquery对象     var jo = $(“#fbody”)。find(“tr”)     //隐藏所有行     。隐藏();     //重复过滤jquery对象以获得结果。     jo.filter(function(i,v){         var $ t = $(this);         for(var d = 0; d&lt; data.length; ++ d){             if($ t.is(“:contains('”+ data [d] +“')”)){                 的console.log(数据[d]);                 返回true;             }         }         返回false;     })     //显示匹配的行。     。节目(); })。focus(function(){     this.value =“”;     $(本)的.css({         “颜色”:“黑色”     });     $(本).unbind( '焦点'); })。CSS({     “颜色”:“#C0C0C0” }); &LT; /脚本&GT;

2 个答案:

答案 0 :(得分:0)

尝试使用:selected

if ($t.find('> select > option').is(":selected:contains('" + data[d] + "')")) {

答案 1 :(得分:0)

您可以尝试将过滤条件更改为

$("#fbody").find("option:selected").each(function () {
   if ( data.indexOf( $( this ).text() ) != -1 ) //updated this line
   {
       $( this ).parent().parent().parent().show();
   }
});

甚至只是

  $( data ).each( function ( index, valueArr ){
    if ( value.indexOf( valueArr ) != -1 )
    {
       $td.parent().show();
    }
  } );

如果您想将TD中的部分值与文本框中输入的值进行比较

protected void bindParametersForCollection(QueryCollection qc,
                                           java.lang.Object[] params,
                                           java.sql.PreparedStatement stmt)
                                    throws java.sql.SQLException