テーブルをフィルタリングするために使用する要素の1つに入力ボックスがあるテーブルがあります。
ボックスに何かを書くと、テーブルがフィルタリングされます。
奇妙なことは、display:block を使用して表示したい行を表示すると、行の外観が完全に破壊されることです。しかし、jquery .toggle(); を使用すると それは正常に動作します。
何故ですか?
HTML:
<body>
<table>
<tr><th>Users<input type="text" id="filter"/></th></tr>
<tr class="user" data="patrick"><td>Patrick</td></tr>
<tr class="user" data="john"><td>John</td></tr>
</table>
</body>
機能する SCRIPT をフィルター処理する
$('#filter').keyup(function(){
$(".user").css("display", "none");
if($("#filter").val()!=''){
var filterstr = $("#filter").val().toLowerCase();
$("[data*="+filterstr+"].user").toggle();
}else{
$(".user").toggle();
}
});
display:block を使用する場合
CSS:
table
{
width: 200px;
}
td
{
border: 1px solid #000;
font: bold 10px Helvetica, Arial, sans-serif;
padding: 5px;
}
th
{
background: #f3f3f3;
border: 1px solid #000;
font: bold 10px Helvetica, Arial, sans-serif;
padding: 5px;
}