返回列表 發帖

請問 RegExp().test用if else判斷再加上class的問題

原本的程式碼只有在篩選完後addClass,但是我想在中間加判斷,true加 addClass('selected'),false加 removeClass('selected'),可是用this會跑出 物件不支援此屬性或方法的錯誤,請問要怎麼修改呢?
謝謝~
//原本的
if(condition){
        filterSection.find('tbody#result tr').find(column).filter(function(){
                (new RegExp(condition).test(this.innerText));                                                   
        }).addClass('selected');                        
}

//修改的
if(condition){
        filterSection.find('tbody#result tr').find(column).filter(function(){
        a = (new RegExp(condition).test(this.innerText));
        if(a==true){
                this.addClass('selected')}
        else{
                this.removeClass('selected')}                                  
        })
}

本帖最後由 eaitng 於 2010-7-27 16:50 編輯

謝謝wmh的回應,我改成下面這樣就OK了
          $('.FilterSection').find('tbody#result tr').each(function(){
                  a=true;
                  b=true;
                  c=true;
                  d=true;
                  
                  if(condition_zone){
                                $(this).find('.column_zone').filter(function(){
                                         a = new RegExp(condition_zone).test(this.innerText);
                          })
            }
                            
            if(condition_no){
                          $(this).find('.column_no').filter(function(){
                                  b = new RegExp(condition_no).test(this.innerText);
                          })
                  }
                            
                  if(condition_name){
                          $(this).find('.column_name').each(function(){
                                  c = new RegExp(condition_name).test(this.innerText);
                          })
                          $(this).find('.column_ename').each(function(){
                                  d = new RegExp(condition_name).test(this.innerText);
                          })
                  }
                            
            if(a && b && (c||d) ){
                    $(this).addClass('selected');
            }
          })
         
          $('tbody#result tr').hide();
                $('.selected').show();

TOP

有一個問題想請教
                $('.FilterSection').find('input:text[name=name]').each(function(){  
                         condition_name = $.trim(this.value);  
                })  
我要讀取input:text name的值,不知道find後面要用什麼接,用each(function())又怪怪的,想請教上面的寫法可以怎麼修改呢?
謝謝~

TOP

返回列表 回復 發帖