Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏表格行_Javascript_Jquery_Html_Html Table - Fatal编程技术网

Javascript 隐藏表格行

Javascript 隐藏表格行,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,如果某个标记中没有内容,我将尝试隐藏一个表行 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <body onload="myFunction()"> <script> function myFunction() { if($(this).find('SampleNumber1'

如果某个标记中没有内容,我将尝试隐藏一个表行

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <body onload="myFunction()">
    <script>
     function myFunction() {
        if($(this).find('SampleNumber1').length === 0 && $(this).find('TypeofTest1').length === 0 && $(this).find('PumpNumber1').length === 0 && $(this).find('CowlNumber1').length === 0 && $(this).find('SampleLocation1').length === 0 && $(this).find('SampleStart1').length === 0 && $(this).find('SampleFinish1').length === 0 && $(this).find('SampleDuration1').length === 0 && $(this).find('FlowRateStart1').length === 0 && $(this).find('FlowRateFinish1').length === 0 && $(this).find('FlowRateMinMean1').length === 0 && $(this).find('SampleVolumeLitres1').length === 0 && $(this).find('FibresCount1').length === 0 && $(this).find('GraticuleFields1').length === 0 && $(this).find('Limit1').length === 0 && $(this).find('CalculatedResult1').length === 0 && $(this).find('ReportedResult1').length === 0) {
         document.getElementById('Sample1').style.display = 'none';
        } else {
        document.getElementById('Sample1').style.display = 'block';
        };  
        }
</script>

<table style= width: 1300px;" border="1" cellpadding="1" cellspacing="0">
      <tbody>
         <tr>
            <td colspan="1" rowspan="2" style="width: 75px; text-align: center;"><span style="font-size: 16px;">Sample Number</span></td>
            <td colspan="1" rowspan="2" style="width: 50px; text-align: center;"><span style="font-size: 16px;">Sample Type</span></td>
            <td colspan="1" rowspan="2" style="width: 60px; text-align: center;"><span style="font-size: 16px;">Pump No</span></td>
            <td colspan="1" rowspan="2" style="width: 60px; text-align: center;"><span style="font-size: 16px;">Cowl No</span></td>
            <td colspan="1" rowspan="2" style="width: 200px; text-align: center;"><span style="font-size: 16px;">Sample Location</span></td>
            <td colspan="2" rowspan="1" style="width: 60px; text-align: center;"><span style="font-size: 16px;">Sampling Times</span></td>
            <td colspan="1" rowspan="2" style="width: 60px; text-align: center;"><span style="font-size: 16px;">Duration (mins)</span></td>
            <td colspan="2" rowspan="1" style="text-align: center;"><span style="font-size: 16px;">Flow
               Rates (l/min)</span>
            </td>
            <td colspan="1" rowspan="2" style="width: 70px; text-align: center;"><span style="font-size: 16px;">Mean<br>
               Flow Rate (l/min)</span>
            </td>
            <td colspan="1" rowspan="2" style="width: 70px; text-align: center;"><span style="font-size: 16px;">Sample Volume (litres)</span></td>
            <td colspan="1" rowspan="2" style="width: 70px; text-align: center;"><span style="font-size: 16px;">Fibres Counted</span></td>
            <td colspan="1" rowspan="2" style="width: 70px; text-align: center;"><span style="font-size: 16px;">Graticule Fields</span></td>
            <td colspan="1" rowspan="2" style="width: 70px; text-align: center;"><span style="font-size: 16px;">Limit of Detection (f/ml)</span></td>
            <td colspan="1" rowspan="2" style="width: 70px; text-align: center;"><span style="font-size: 16px;">Calculated Result (f/ml)</span></td>
            <td colspan="1" rowspan="2" style="width: 70px; text-align: center;"><span style="font-size: 16px;">Recorded Result (f/ml)</span></td>
         </tr>
         <tr>
            <td style="width: 40px; text-align: center;"><span style="font-size: 16px;">Start</span></td>
            <td style="width: 40px; text-align: center;"><span style="font-size: 16px;">Finish</span></td>
            <td style="width: 40px; text-align: center;"><span style="font-size: 16px;">Start</span></td>
            <td style="width: 40px; text-align: center;"><span style="font-size: 16px;">Finish</span></td>
         </tr>
         <tr id="Sample1">
            <td><span id="SampleNumber1" style="font-size: 16px;"><%SampleNumber_1%></span></td>
            <td><span id="TypeofTest1" style="font-size: 16px;"><%TypeofTest_1%></span></td>
            <td><span id="PumpNumber1" style="font-size: 16px;"><%PumpNo_1%></span></td>
            <td><span id="CowlNumber1" style="font-size: 16px;"><%CowlNo_1%></span></td>
            <td><span id="SampleLocation1" style="font-size: 16px;"><%SampleLocation_1%></span></td>
            <td><span id="SampleStart1" style="font-size: 16px;"><%SampleStart_1%></span></td>
            <td><span id="SampleFinish1" style="font-size: 16px;"><%SampleFinish_1%></span></td>
            <td><span id="SampleDuration1" style="font-size: 16px;"><%SampleDuration_1%></span></td>
            <td><span id="FlowRateStart1" style="font-size: 16px;"><%FlowRateStart_1%></span></td>
            <td><span id="FlowRateFinish1" style="font-size: 16px;"><%FlowRateFinish_1%></span></td>
            <td><span id="FlowRateMinMean1" style="font-size: 16px;"><%FlowRatelminMean_1%></span></td>
            <td><span id="SampleVolumeLitres1" style="font-size: 16px;"><%SampleVolumelitres_1%></span></td>
            <td><span id="FibresCount1" style="font-size: 16px;"><%FibresCount_1%></span></td>
            <td><span id="GraticuleFields1" style="font-size: 16px;"><%GraticuleFields_1%></span></td>
            <td><span id="Limit1" style="font-size: 16px;"><%Limit_1%></span></td>
            <td><span id="CalculatedResult1" style="font-size: 16px;"><%CalculatedResult_m1%></span></td>
            <td><span id="ReportedResult1" style="font-size: 16px;"><%ReportedResult_1%></span></td>
         </tr>
  </tbody>

函数myFunction(){
如果($(this).find('SampleNumber1')。长度===0&&&$(this).find('TypeofTest1')。长度==0&&$(this.find('PumpNumber1')。长度==0&&$(this.find('SampleLocation1')。长度==0&&$(this.find('SampleStart1')。长度==0&$(this.find('SampleFinish1')。长度==0&$(this.find('SampleDuration1')。长度==0&&$(this)。查找('FlowRateStart1')。长度==0&$(this)。查找('FlowRateFinish1')。长度==0&$(this)。查找('FlowRateMinMean1')。长度==0&$(this)。查找('FibreCount1')。长度==0&$(this)。查找('FibresCount1')。长度==0&$(this)。查找('GradiculeFields1')。长度==0&$(this)。查找('Limit1')).length==0&&$(this.find('CalculatedResult1')。length==0&&$(this.find('ReportedResult1')。length==0){
document.getElementById('Sample1').style.display='none';
}否则{
document.getElementById('Sample1').style.display='block';
};  
}
使用

而不是

$(this).find('SampleNumber1').length
document.getElementById('Sample1').style.display = 'none';
document.getElementById('Sample1').style.display = 'block';
您正在尝试查找ID为的元素,因此请在之前指定#

你也可以使用

$('#Sample1').hide();
$('#Sample1').show();
而不是

$(this).find('SampleNumber1').length
document.getElementById('Sample1').style.display = 'none';
document.getElementById('Sample1').style.display = 'block';
编辑/更新

此代码搜索每个id为的tr时以Sample开头。然后搜索此tr内的每个跨度,并检查所有跨度中是否有一个具有内容

$( 'tr[id^="Sample"]' ).each(function() {
     var empty = true;
     $( this ).find("span").each(function() {
          if ($( this ).is(':empty') === false) {
               empty = false;
          }
     });
     if (empty === false) {
          $(this).show();
     } else {
          $(this).hide();
     }
});

我认为您可以对这个解决方案进行大量清理,并简化代码。以下是我认为您正在努力实现的一系列目标:

以下是jquery代码:

(function($){
    var values = $('.value').children('td');
    $.each(values, function(){
        if($(this).text().length > 0){
             $(this).parent('tr.value').show();  
        }
    });
})(jQuery);
将tr设置为类,而不是通过单独的ID引用td:

<table>
    <thead>
        <tr>
            <th>Sample1</th>
            <th>Sample2</th>
            <th>Sample3</th>
            <th>Sample4</th>
        </tr>
    </thead>
    <tbody>
        <tr class='value'>
            <td>Value1</td>
            <td>Value2</td>
            <td></td>
            <td></td>
        </tr>
        <tr class='value'>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr class='value'>
            <td></td>
            <td>Value2</td>
            <td></td>
            <td>Value4</td>
        </tr>
    </tbody>
</table>

您能提供一个JSFIDLE吗?事实上,我最近遇到了一个非常非常棘手的问题,表显示不正确,因为它的“显示/隐藏”代码在某个地方使用了“显示:无/块”,而表实际上需要“显示:表”或“显示:表行”。希望JQuery的show/hide方法能够适当地处理这个问题。
$(this).find(“#SampleNumber1”)。length==0
给出了相同的结果result@Jack看看我的解决方案。问题是$(选择器).length给出的是选择器返回的集合的长度,而不是元素内容的长度。您的代码是询问我是否有id为SampleNumber 1的元素,id为SampleNumber 1的元素是否有任何内容。@MichaelHumelsine如何查找内容的长度?@Jack I发布了回答您的问题并提供小提琴演示…这不是您想要的吗?