2017-02-21 156 views
0

我創建了一個表,但不知何故現在能夠過濾該行。它給我錯誤,因爲不能讀取屬性拆分。這裏是我的fiddle文件的鏈接。任何幫助都會很棒。提前致謝。表jQuery過濾器

$("#crudtable_filter").keyup(function() { 
    //split the current value of searchInput 
    var data = this.value.split(" "); 
    //create a jquery object of the rows 
    var jo = $("#crudtable").find("tr"); 
    if (this.value == "") { 
     jo.show(); 
     return; 
    } 
    //hide all the rows 
    jo.hide(); 

    //Recusively filter the jquery object to get results. 
    jo.filter(function (i, v) { 
     var $t = $(this); 
     for (var d = 0; d < data.length; ++d) { 
      if ($t.is(":contains('" + data[d] + "')")) { 
       return true; 
      } 
     } 
     return false; 
    }) 
    //show the rows that match. 
    .show(); 
}).focus(function() { 
    this.value = ""; 
    $(this).css({ 
     "color": "black" 
    }); 
    $(this).unbind('focus'); 
}).css({ 
    "color": "#C0C0C0" 
}); 
+0

你的'this.value.split(「」);'獲取undefine值解決它並繼續。 – RRajani

回答

3

工作小提琴:http://jsfiddle.net/sofqjbrg/3/

說明:

爲了得到該起重工事件的元素的值,你需要使用$(event.target).val()

$(event.target)$(this)之間的差異,請參考Difference between $(this) and event.target?

PS:您的焦點事件登記到錯誤的元素。

+0

thanx,像魅力一樣工作,但我只能看到我搜索的具體元素,如果我想看到所選單詞的整個行,該怎麼辦? – Harshit

+0

@Harshit你可能希望通過隱藏所有tr excpet第一個來保留表頭:'var jo = $(「#crudtable」)。find(「tr」)。not(「:eq(0)」); '。新的JsFiddle:http://jsfiddle.net/sofqjbrg/5/ – user3682091