隐藏/显示基于先前单元格的表格单元格

时间:2012-10-30 07:38:24

标签: jquery

我想根据前一个单元格中的值显示/隐藏表格单元格。如果前一个单元格的值大于show else hide。 Jquery应该为每一行评估这个。我现在有以下代码:

    jQuery(document).ready(function() {
    jQuery('input[name^="OS"]').hide();
    jQuery('input[name^="OF"]').on('keyup', function(){ 
        jQuery('table#form_er tr').each(function(){ 
            if(!jQuery('input[name^="OF"]').val()){
                jQuery('input[name^="OS"]').hide();}
            else {jQuery('input[name^="OS"]').show();}
        });
    });
});

现在的结果是,即使OF填充,所有OS单元都被隐藏,如果我填充空OF,所有OS单元都显示出来,当我清除OF单元时没有任何变化。 有人能指出我正确的方向吗?谢谢。

2 个答案:

答案 0 :(得分:0)

我认为您的代码是正确的,但可能是$('input [name ^ =“OS”]')。val()为空。

答案 1 :(得分:0)

尝试使用 jQuery(this)最近('tr')来定位当前行中的单元格。

jQuery(document).ready(function() {
    jQuery('input[name^="OS"]').hide();
    jQuery('input[name^="OF"]').on('keyup', function() {
        jQuery('table#form_er tr').each(function() {
            if (jQuery(this).val() != '') {
                jQuery(this).closest('tr').find('input[name^="OS"]').hide();
            }
            else {
                jQuery(this).closest('tr').find('input[name^="OS"]').show();
            }
        });
    });
});​

如果您要定位的单元格是下一个单元格..那么您也可以这样做..

jQuery(this).closest('td').next('td').find('input[name^="OS"]').hide();

修改

!jQuery(this).val() 替换为 jQuery(this).val() != ''