var co1 = $("#txtCols1").val();
   var co2 = $("#txtCols2").val();
   var co3 = $("#txtCols3").val();
   var co4 = $("#txtCols4").val();
   var co5 = $("#txtCols5").val();
   var co6 = $("#txtCols6").val();
   var co7 = $("#txtCols7").val();
   var co8 = $("#txtCols8").val();
   var co9 = $("#txtCols9").val();
   var co10 = $("#txtCols10").val();
   var co11 = $("#txtCols11").val();
   var co12 = $("#txtCols12").val();
<tr>
    <td height="22" bgcolor="#FFFFFF"><div align="center" id="d1" reg="cols1" class="STYLE9">1</div></td>
    <td bgcolor="#FFFFFF"><div align="left" id="d2" reg="cols2" class="STYLE9">甘肃省</div></td>
    <td bgcolor="#FFFFFF"><div align="left" id="d3" reg="cols3" class="STYLE9">可口可乐希望小学</div></td>
    <td bgcolor="#FFFFFF"><div align="left" id="d4" reg="cols4" class="STYLE9">辛店镇辛店小学</div></td>
    <td bgcolor="#FFFFFF"><div align="left" id="d5" reg="cols5" class="STYLE9">可口可乐基金</div></td>
    ……
 </tr>
每一个td上面都有一个文本框用于搜索,当点击搜索时取出文本框的值进行模糊查询。如果有一列不符合要求则不要这条数据。
 $("tr").each(function (){
              var count=0;
              $(this).find("div").each(function(){
              var c = "cols"+i;
              var d = "d"+i;
                if($(this).attr("reg")!=undefined && $(this).attr("reg")==c)
                { 
                     if(i==1){co=co1;} if(i==2){co=co2;} if(i==3){co=co3;} if(i==4){co=co4;} if(i==5){co=co5;}
                     if(i==6){co=co6;} if(i==7){co=co7;} if(i==8){co=co8;} if(i==9){co=co9;} if(i==10){co=co10;}if(i==11){co=co11;} if(i==12){co=co12;}
                     if($(this).find(co)!="")
                     {
                     alert("aa");
                     }
                   i++;
                }
               });
红字的地方不对,现在不知道该怎么拿文本框的值去模糊查询了。本人刚学,求高手解决,小弟感激不尽。

解决方案 »

  1.   

    代码很糟糕。这个$(this)匹配的是一行 你是想在特地TD里找还是这行里找co应该是你要模糊查询的值吧
      

  2.   

    ???var co1 = $("#txtCols1").val();  能取得到值吗?var co1 = $("#txtCols1").text();$(this).find("div").each(function(){    // 已经获取到每个 div 
    ...
    ...if( $(this).text() == "1" )           // 判定这个div 的值
    {
      alert("aa");
    }}
      

  3.   

    var co1 = $("#txtCols1").val();能取得到值
    的确是把div的内容取出来了 就是不知道给怎么匹配 如果我这样做不行 请大家赐教更好一点的方法
      

  4.   

    if($(this).contains(co)!="")不是这样吧 出错了 “对象不支持此属性或方法”
      

  5.   

    if($(this).is(":contains(" + co + ")"))
      

  6.   

    出现错误 “例外被抛出且没有被接住”是不是这句代码不是和我用的版本? 我用的是jquery-1.3.2.js
      

  7.   

    if($(this).html().contains(co)!="")试试!!
      

  8.   

    错了,,if($(this).text().contains(co)!="")
      

  9.   

     $("tr").each(function (){
                  var count=0;
                  $(this).find("div").each(function(){
                  var c = "cols"+i;
                  var d = "d"+i;
                    if($(this).attr("reg")!=undefined && $(this).attr("reg")==c)
                    { 
                         if(i==1){co=co1;} if(i==2){co=co2;} if(i==3){co=co3;} if(i==4){co=co4;} if(i==5){co=co5;}
                         if(i==6){co=co6;} if(i==7){co=co7;} if(i==8){co=co8;} if(i==9){co=co9;} if(i==10){co=co10;}
                         if(i==11){co=co11;} if(i==12){co=co12;}/* if(i==13){co=co13;} if(i==14){co=co14;} if(i==15){co=co15;}
                         if(i==16){co=co16;} if(i==17){co=co17;} if(i==18){co=co18;} if(i==19){co=co19;} if(i==20){co=co20;}
                         if(i==21){co=co21;} if(i==22){co=co22;} if(i==23){co=co23;} if(i==24){co=co24;} if(i==25){co=co25;}*/
                         if($(this).is(":contains(" + co + ")")){
                           alert("aa");
                           i++;
                         }
                    }
                    
                   });
    我是这样写的 是不是应该返回true或false?
    但是出错了 提示信息是“例外被抛出且未被接住”(图片弄不上来)
      

  10.   

    在这句之前打印下alert($(this).text());让我看下。
    is返回的是boolean的 请放心
      

  11.   

    打出来的是div里面的值 没有问题
      

  12.   

    co确实是文本框里的值 没有问题
    难道不可以用contains去检索div里面的文本吗?