JQuery中的includes方法是用來查找一個字符串中是否包含另一個字符串的方法。通常在檢查字符串是否包含某個關鍵字時會用到這個方法。
$.fn.includes = function(str) { return this.filter(function() { return $(this).text().toLowerCase().indexOf(str.toLowerCase()) >-1; }); };
這個includes方法的作用是返回一個新的JQuery對象,該對象中包含了原始集合中所有包含指定字符串的元素。
使用includes方法非常簡單,只需要將包含要查找的字符串的選擇器傳入方法中即可:
$("#myInput").on('input', function() { var value = $(this).val(); $(".myList li").hide().includes(value).show(); });
這段代碼會監測輸入框中的變化,然后根據輸入的內容過濾包含該內容的列表項。
在實際使用中,我們還可以將includes方法封裝成一個JQuery插件,以便于在更多的場景下使用:
$.fn.filterByText = function(textbox) { return this.each(function() { var select = this; $(textbox).bind('change keyup', function() { var value = $(this).val(); $(select).find("option").hide().includes(value).parent().show(); }); }); };
這個插件可以根據輸入框的內容過濾select元素中的option選項:
$("#mySelect").filterByText($("#myInput"));
這行代碼將輸入框與select元素綁定,根據輸入框中的內容過濾select中的option選項。