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();
    });
});