jQuery-选中复选框时为表行着色,不选中时删除
jQuery - Color table rows when checkbox is checked and remove when not
我有点困了,无法理解这个问题。我设置了一些jQuery,用于标识无线电输入中的值,这些值与表中的值对齐。这是对表进行一些筛选的开始。
我希望发生以下三件事:
- 每当你点击一个过滤器,并且单元格具有相同的值时,它的行就会高亮显示
- 每当您选中该选项时,它就会被删除
- 如果加载页面并且已经选中某个选项,则加载时该行将高亮显示
jQuery代码:
$(function () {
// On Change of Radio Buttons
$('input').on('change', function () {
var filter = $('input:checkbox[name=filter]:checked').val();
// Edit the Rows
$(".gameStatus").filter(function () {
return $(this).text() == filter;
}).parent('tr').addClass('filtered');
});
});
jsfiddle:http://jsfiddle.net/darcyvoutt/8xgd51mg/
$(function () {
var filters = [];
var edit_rows = function () {
filters = [];
$('input:checkbox[name=filter]:checked').each(function () {
filters.push(this.value);
});
// Edit the Rows
$(".gameStatus").each(function () {
$(this).parent('tr')
.toggleClass('filtered',
filters.indexOf($(this).text()) > -1
);
});
}
edit_rows();
// On Change of Radio Buttons
$('input').on('change', edit_rows);
});
jsfiddle
edit:添加了功能,以便在页面加载时调用
这是另一种解决方案。。。
$(function () {
function highlight() {
var filter = $(this).val();
var checked = this.checked;
// Edit the Rows
var affectedRows = $(".gameStatus").filter(function () {
return $(this).text() == filter;
});
if (checked) {
affectedRows.parent('tr').addClass('filtered');
} else {
affectedRows.parent('tr').removeClass('filtered');
}
}
$('input').each(highlight);
// On Change of Radio Buttons
$('input').on('change', highlight);
});
.filtered {
background: tomato;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="content">
<div class="filters">
<input type="checkbox" name="filter" id="draft" value="Draft" checked />
<label for="draft">Draft</label>
<input type="checkbox" name="filter" id="active" value="Active" />
<label for="active">Active</label>
<input type="checkbox" name="filter" id="complete" value="Complete" />
<label for="complete">Complete</label>
<input type="checkbox" name="filter" id="acrhived" value="Archived" />
<label for="acrhived">Archived</label>
</div>
<table id="userManager">
<tbody>
<tr>
<th>Game</th>
<th>Teams</th>
<th>Status</th>
</tr>
<tr>
<td>Another Game</td>
<td>New Team, Project Lucrum</td>
<td class="gameStatus">Active</td>
</tr>
<tr>
<td>New Game</td>
<td>No teams selected</td>
<td class="gameStatus">Draft</td>
</tr>
<tr>
<td>New Game</td>
<td>New Team, Just in Case</td>
<td class="gameStatus">Active</td>
</tr>
</tbody>
</table>
<div class="test"></div>
</div>
试试这个。:)
$(function () {
var highlight = function(el){
if(el.is(':checked')){
$(".gameStatus:contains("+el.val()+")")
.parent('tr').addClass('filtered');
}else{
$(".gameStatus:contains("+el.val()+")")
.parent('tr').removeClass('filtered');
}
}
//On Load
highlight($('input[type="checkbox"][name=filter]:checked'));
// On Change of Radio Buttons
$('input').on('change', function () {
highlight($(this));
});
});
相关文章:
- 如何删除'被按压'state from复选框
- 添加和删除复选框,取决于输入值
- 如何使用 javascript 删除复选框
- 组合框更改时删除复选框和文本值
- 单击按钮时的多重删除复选框无法按要求工作
- 为什么我的代码在第一次 setInterval 调用时删除复选框控件
- 如何在角度 js 中从数组中删除复选框
- 从角度树视图中删除复选框
- 如何在隐藏字段中追加和删除复选框值
- 我有一个**Rad Combo Box**,其中有两个分隔符.如何仅从分隔符中删除复选框
- 在文本区域中添加/删除复选框值
- jQuery:如何在删除复选框后回调/恢复
- 根据某些业务逻辑动态添加和删除复选框事件
- 如何使用jquery添加和删除复选框的值
- jQuery根据索引删除复选框
- HTML, javascript -如何删除复选框中选中的表的行
- ngModel会自动删除复选框的“已选中”状态
- 从对话框中删除复选框并在复选框未打开时打开时出现问题't拆卸
- 动态删除复选框的问题
- 如何在图像的onclick事件上从追加元素中删除复选框元素后取消选中