Javascript 筛选jquery数据表行
我正在处理这个表,如果列没有数据,它需要过滤行。我可以过滤掉整个表,但是我在过滤掉特定列的行时遇到了问题。任何帮助都将不胜感激Javascript 筛选jquery数据表行,javascript,jquery,Javascript,Jquery,我正在处理这个表,如果列没有数据,它需要过滤行。我可以过滤掉整个表,但是我在过滤掉特定列的行时遇到了问题。任何帮助都将不胜感激 您需要特别选择与所选过滤器对应的td,使其工作。在代码中,当行中的任何td为空时,隐藏tr 您可以添加一个类来标识这些td,如ih this fiddle: 编辑:对不起,我忘了保存小提琴,现在完成了。您需要特别选择与所选过滤器对应的td,它才能工作。在代码中,当行中的任何td为空时,隐藏tr 您可以添加一个类来标识这些td,如ih this fiddle: 编辑:对
您需要特别选择与所选过滤器对应的
td
,使其工作。在代码中,当行中的任何td
为空时,隐藏tr
您可以添加一个类来标识这些td,如ih this fiddle:
编辑:对不起,我忘了保存小提琴,现在完成了。您需要特别选择与所选过滤器对应的
td
,它才能工作。在代码中,当行中的任何td
为空时,隐藏tr
您可以添加一个类来标识这些td,如ih this fiddle:
编辑:对不起,我忘了保存小提琴,现在就完成了。这将根据下拉列表进行筛选,您可以将其应用到代码中。数据[1]是要筛选的列
var employeeName = '';
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
if (data[1].indexOf(employeeName) > -1) {
return true;
}
else {
return false;
}
}
);
$(document).ready(function () {
$('#employeeSelection').change(function (event) {
employeeName = $('#employeeSelection').val();
table.draw();
});
var table = $('#mainGrid').DataTable({
paging: false,
ordering: true,
aaSorting: [],
scrollX: true,
searching: true,
dom: 'Bfrtip',
buttons: [
'print'
]
});
});
这将根据下拉列表进行过滤,您可以将其应用于代码。数据[1]是要筛选的列
var employeeName = '';
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
if (data[1].indexOf(employeeName) > -1) {
return true;
}
else {
return false;
}
}
);
$(document).ready(function () {
$('#employeeSelection').change(function (event) {
employeeName = $('#employeeSelection').val();
table.draw();
});
var table = $('#mainGrid').DataTable({
paging: false,
ordering: true,
aaSorting: [],
scrollX: true,
searching: true,
dom: 'Bfrtip',
buttons: [
'print'
]
});
});
你得到的一些建议过于复杂。您不需要使用
。每个,也不需要if
语句来检查空值
通过将选择器修改得更具体一些,您的代码可以更干净、更高效,而无需使用单个或if
请看这里:
第n个子项(2)
中的2表示第2列。正如您可以假设的那样,我们只需将此数字更改为与监视器
和电话
相匹配,您得到的一些建议过于复杂。您不需要使用。每个,也不需要if
语句来检查空值
通过将选择器修改得更具体一些,您的代码可以更干净、更高效,而无需使用单个或if
请看这里:
第n个子项(2)
中的2表示第2列。正如您所设想的,我们只需将此号码更改为与monitor
和phone
相匹配,感谢您的简单修复!非常值得赞赏的是,这可以在不使用类的情况下完成,。每个
循环、if语句等。为了提高效率和可读性,我强烈建议在回答时使用峰值。否则,如果这是你选择的解决方案,一定要接受它。完全正确桑蒂,考虑到问题的严重程度,我更喜欢简单地解释hiw出了什么问题,一步一步走。如果您想否决投票,请按自己的意愿行事,而不是在这里投票你的回答没有错,你回答了问题,所以我当然没有理由否决投票。我只是觉得有义务指出这一点,以便OP能得到最好的解决方案。感谢您的简单修复!非常值得赞赏的是,这可以在不使用类的情况下完成,。每个
循环、if语句等。为了提高效率和可读性,我强烈建议在回答时使用峰值。否则,如果这是你选择的解决方案,一定要接受它。完全正确桑蒂,考虑到问题的严重程度,我更喜欢简单地解释hiw出了什么问题,一步一步走。如果您想否决投票,请按自己的意愿行事,而不是在这里投票你的回答没有错,你回答了问题,所以我当然没有理由否决投票。我只是觉得有义务指出这一点,以便OP能得到最好的解决方案。我喜欢你在这里的答案,我认为它更清晰,更容易阅读。谢谢,我感谢你的帮助。我喜欢你的答案,我觉得它更清晰,更容易阅读。谢谢,谢谢你的帮助。
$(document).ready(function() {
$tableRows = $("#table-ActiveRooms tr");
$('#camera').click(function() {
$tableRows.has("td:nth-child(2):empty").hide();
});
$('#monitor').click(function() {
$tableRows.has("td:nth-child(3):empty").hide();
});
$('#phone').click(function() {
$tableRows.has("td:nth-child(4):empty").hide();
});
$('#btnReset').click(function() {
$tableRows.show();
});
});