使用jquery和dropdown select删除后显示行

时间:2015-02-11 15:39:25

标签: jquery html

我创建了一个过滤器,根据与所选值的比较从表中删除行。问题是我需要在用户选择不同的值后显示已删除的行,但我无法弄清楚如何。 这是我的功能:

$(document).ready(function() {
    $("button").click(function() {
        $("td").each(function(index, paragraph) {
            $td = $(paragraph);
            if ($td.html() === $('select[name=select1]').val()) {
                $(this).parent("tr:first").remove();                    }
        });
});

这是下拉列表:

<select name="select1">
    <option value="" disabled selected>user name</option>
    <?php while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { ?>
        <option value="<?php echo $line['user_name'];?>">
            <?php echo $line['user_name'];?>
        </option>
    <?php } ?>
</select>

有没有办法在select1更改后将删除的行返回到表中?

2 个答案:

答案 0 :(得分:0)

为什么不直接将TR上的css更改为:

display: none; 

而不是删除它?然后,您可以通过将其更改为:

将其重新添加
display: block;

答案 1 :(得分:0)

不是删除匹配的行,为什么不隐藏它们,然后在下拉值更改时再次显示所有行?

$(document).ready(function() {
    $("button").click(function() {
        $("td").each(function(index, paragraph) {
            $td = $(paragraph);
            if ($td.html() === $('select[name=select1]').val()) {
                //hide the matched row rather than remove it
                $(this).parent("tr:first").hide();
            }
    });
    $('select[name="select1"]').on('change', function() {
        $("tr").show();
    });
});

<强> JSFIDDLE Demo