我有一个javascript函数,它将根据已经正常工作的选择框选项值过滤表行。现在我正在尝试实现一个函数,它将根据该值之后的选择框值+任何文本过滤行。顺便说一下我是javascript的新手。
我的选择框代码:
<select name="filterdivision" id="filterdivision">
<option selected="selected" value="">Select Division</option>
<option value="Metals and Minerals">Metals and Minerals</option>
<option value="Industrial">Industrial</option>
<option value="Rail">Rail</option>
<option value="Corporate">Corporate</option>
<option value="GSC">GSC</option>
</select>
我的表格HTML
<table class="winner-data" width="100%">
<thead>
<tr>
<th class="sort" data-sort="name">Heading 1</th>
<th class="sort" data-sort="category">Heading 2</th>
<th class="sort" data-sort="division">Division/Region</th>
</tr>
</thead>
<tbody class="list">
<tr>
<td class="name">IKG Mexico Management Team</td>
<td class="category">Customer</td>
<td class="division">Industrial</td>
</tr>
<tr>
<td class="name">Tubarão Brazil Site</td>
<td class="category">Customer</td>
<td class="division">Metals and Minerals</td>
</tr>
<tr>
<td class="name">Euridice Mason</td>
<td class="category">Customer</td>
<td class="division">Metals and Minerals</td>
</tr>
<tr>
<td class="name">Brazil Tax Team</td>
<td class="category">Customer</td>
<td class="division">Metals and Minerals Brazil</td>
</tr>
<tr>
<td class="name">M&M Bid and Contract Team</td>
<td class="category">Customer</td>
<td class="division">Metals and Minerals Central</td>
</tr>
</table>
我的Javascript:
$('#filtercategory').change(function () {
var selection = this.value;
if($(this).val()!==""){
// filter items in the list
userList.filter(function (item) {
return (item.values().category == selection);
});
}else{
userList.filter();
return false;
}
});
当前函数是过滤除法:例如它将过滤“金属和矿物”,所以我希望它过滤“金属和矿物+任何东西”
答案 0 :(得分:1)
目前正在进行过滤,以使类别(松散地)等于选择:
return (item.values().category == selection);
如果要按除法 包含选择进行过滤,请使用.includes
字符串方法:
return item.values().division.toLowerCase().includes(selection.toLowerCase());
或者,如果您不想测试toLowerCase
:
return item.values().division.includes(selection);
如果您想支持旧浏览器,则可能需要填充。