我正在处理这个website,你可以看到我有一个内容表,顶部有一些过滤器来过滤结果。基本上,您单击复选框,然后可以在rows
我实际上是尝试使用此script
来尝试过滤结果但不起作用
$(document.body).on('change', "#zimmer4", function() {
$("#tableID tr.zimmer4").toggle(!this.checked);
});
$(document.body).on('change', "#zimmer3", function() {
$("#tableID tr.zimmer3").toggle(!this.checked);
});
$(document.body).on('change', "#zimmer2", function() {
$("#tableID tr.zimmer2").toggle(!this.checked);
});
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<span class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Zimmer
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<form class="filter">
<input id="zimmer4" class="unchecked" type="checkbox">4.5
<br>
<input id="zimmer3" class="unchecked" type="checkbox">3.5
<br>
<input id="zimmer2" class="unchecked" type="checkbox">2.5
<br>
</form>
</ul>
</span>
HTML表格行:
<div id="wrap" class="tabelle">
<table class="table" id="tableID">
<thead>
<tr>
<th>Wohnung</th>
<th>Zimmer</th>
<th>Stockwerk</th>
<th>Nettomiete</th>
<th>Bruttomiete</th>
<th>PDF</th>
</tr>
</thead>
<tbody>
<tr class="row1 row2OG row3OG zimmer3 zimmer2 range1 range2 range3 range5">
<td>1.001</td>
<td>4.5</td>
<td>EG / 1. OG</td>
<td>2252</td>
<td>2500</td>
<td><a href="/table/pdfs/01.001.pdf" target="_blank"><img src="/img/pdf.png" alt=""></a></td>
</tr>
</tbody>
</table>
</div>
我做错了什么?
感谢您的建议
答案 0 :(得分:0)
使用此代码,
最终代码:
<html>
<head>
</head>
<style>
.hid {
display: none;
}
</style>
<body>
<select id="zimmer">
<option value="all">Select Zimmer</option>
<option value="2.5">2.5</option>
<option value="3.5">3.5</option>
<option value="4.5">4.5</option>
</select>
<table id="tab">
<tr><th>Wohnung</th><th>Zimmer</th><th>Stockwerk</th></tr>
<tr class="2.5"><td>xxx</td><td>2.5</td><td>www</td></tr>
<tr class="4.5"><td>xx</td><td>4.5</td><td>www</td></tr>
<tr class="3.5"><td>aaa</td><td>3.5</td><td>www</td></tr>
<tr class="3.5"><td>qqq</td><td>3.5</td><td>www</td></tr>
<tr class="3.5"><td>fff</td><td>3.5</td><td>www</td></tr>
<tr class="4.5"><td>ppp</td><td>4.5</td><td>www</td></tr>
</table>
<script>
var ele = document.getElementById("zimmer");
var rows = document.getElementById("tab").rows;
ele.addEventListener('change',filterTable);
function filterTable() {
for(var i = 1; i < rows.length; i++){
if(rows[i].classList.contains(this.value))
rows[i].classList.remove("hid");
else if (this.value == "all")
rows[i].classList.remove("hid");
else
rows[i].classList.add("hid");
}
}
</script>
</body>
</html>
答案 1 :(得分:0)
使用您示例中的代码,它应该可以工作。 还要检查您网站上的控制台,它会出错:
Uncaught TypeError: $ is not a function
我从你的代码中创建了一个小提琴,但编辑了一个小东西:我假设你想要显示选中复选框的行。而不是在选中复选框时隐藏它们: