如果没有行则隐藏tableheader
Hide table header if there is no row
我有一个 table 患者,其中,对于 table 的每一行,我可以删除该行或执行其他操作,所以当我删除所有行时,我想要我的 table header 被隐藏或删除。
<table id ="results-table" class="table table-strip">
<thead>
<tr>
<th>Emri</th>
<th>Mbiemri</th>
<th>Numri personal</th>
<th>Vendi i lindjes</th>
<th>Data e diagnozës së parë</th>
<th>Data e raportimit</th>
<th>Mjeku raportues</th>
<th>Veprimet</th>
</tr>
</thead>
{% if patient_docs and patient_docs.collection.count() > 0 %}
<tbody id="patient-list">
{% for patient_doc in patient_docs %}
<tr>
{% if patient_doc.patient is defined %}
<td>{{ patient_doc.patient.emri }}</td>
<td>{{ patient_doc.patient.mbiemri }}</td>
<td>{{ patient_doc.patient.numri_personal }}</td>
<td>{{ patient_doc.patient.vendi_lindjes }}</td>{% endif %}
<td>{% if patient_doc.diagnosis is defined %}{{ patient_doc.diagnosis.data_diagnozes_se_pare }}{% endif %}</td>
<td>{% if patient_doc.treatment is defined %}{{ data_e_raportimit }}{% endif %}</td>
<td>{% if patient_doc.treatment is defined %}{{ patient_doc.treatment.mjeku_raportues }}{% endif %}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
那么我如何使用 jQuery 来做到这一点,以便在没有行时隐藏 header 并显示一条消息,表示没有患者注册?
注意到您实际上想要基本上隐藏整个 table(而不仅仅是 header)并显示一条消息说没有患者登记。
执行此操作的简单方法是创建一个函数,检查行是否存在,如果存在则隐藏消息,显示 table,否则执行相反的操作
var $msg = $('#msgDivId');
function showMsgOnEmptyTable(target, msg){
var $target = $(target);
if( $target.find('tr') ){
$target.show( );
$msg.hide();
} else {
$target.hide();
$msg.show();
}
}
在html
<div id="msgDivId">
No Patients Registered
</div>
<table id="targetTable"> ... table stuff goes here ... </table>
当您更改 table 调用时
showMsgOnEmptyTable('#targetTable');
每次删除一行时,您都可以使用
计算剩余的行数
var rowCount = $('#myTable tbody tr').length;
如果行数变为 0,则只需使用 .hide()
隐藏 table
在您的 add
和 remove
函数中,您可以添加类似 renderBody
的方法,这将隐藏或显示您的 tbody
部分:
function addRow() {
...
renderBody();
}
function removeRow() {
...
renderBody();
}
function renderBody() {
var $tbody = $('#patient-list');
if (patient_docs && patient_docs.collection.count() > 0) {
$tbody.show();
}
else {
$tbody.hide();
}
}
你可以放线
{% 如果 patient_docs 和 patient_docs.collection.count() > 0 %}
在"thead"
之前
或
在 document.ready 中使用 jquery,您可以检查长度
if ($('#results-table > tbody > tr').length == 0){
$('#results-table > thead > th').css('display','none');
}
我有一个 table 患者,其中,对于 table 的每一行,我可以删除该行或执行其他操作,所以当我删除所有行时,我想要我的 table header 被隐藏或删除。
<table id ="results-table" class="table table-strip">
<thead>
<tr>
<th>Emri</th>
<th>Mbiemri</th>
<th>Numri personal</th>
<th>Vendi i lindjes</th>
<th>Data e diagnozës së parë</th>
<th>Data e raportimit</th>
<th>Mjeku raportues</th>
<th>Veprimet</th>
</tr>
</thead>
{% if patient_docs and patient_docs.collection.count() > 0 %}
<tbody id="patient-list">
{% for patient_doc in patient_docs %}
<tr>
{% if patient_doc.patient is defined %}
<td>{{ patient_doc.patient.emri }}</td>
<td>{{ patient_doc.patient.mbiemri }}</td>
<td>{{ patient_doc.patient.numri_personal }}</td>
<td>{{ patient_doc.patient.vendi_lindjes }}</td>{% endif %}
<td>{% if patient_doc.diagnosis is defined %}{{ patient_doc.diagnosis.data_diagnozes_se_pare }}{% endif %}</td>
<td>{% if patient_doc.treatment is defined %}{{ data_e_raportimit }}{% endif %}</td>
<td>{% if patient_doc.treatment is defined %}{{ patient_doc.treatment.mjeku_raportues }}{% endif %}</td>
</tr>
{% endfor %}
</tbody>
{% endif %}
</table>
那么我如何使用 jQuery 来做到这一点,以便在没有行时隐藏 header 并显示一条消息,表示没有患者注册?
注意到您实际上想要基本上隐藏整个 table(而不仅仅是 header)并显示一条消息说没有患者登记。
执行此操作的简单方法是创建一个函数,检查行是否存在,如果存在则隐藏消息,显示 table,否则执行相反的操作
var $msg = $('#msgDivId');
function showMsgOnEmptyTable(target, msg){
var $target = $(target);
if( $target.find('tr') ){
$target.show( );
$msg.hide();
} else {
$target.hide();
$msg.show();
}
}
在html
<div id="msgDivId">
No Patients Registered
</div>
<table id="targetTable"> ... table stuff goes here ... </table>
当您更改 table 调用时
showMsgOnEmptyTable('#targetTable');
每次删除一行时,您都可以使用
计算剩余的行数var rowCount = $('#myTable tbody tr').length;
如果行数变为 0,则只需使用 .hide()
隐藏 table在您的 add
和 remove
函数中,您可以添加类似 renderBody
的方法,这将隐藏或显示您的 tbody
部分:
function addRow() {
...
renderBody();
}
function removeRow() {
...
renderBody();
}
function renderBody() {
var $tbody = $('#patient-list');
if (patient_docs && patient_docs.collection.count() > 0) {
$tbody.show();
}
else {
$tbody.hide();
}
}
你可以放线
{% 如果 patient_docs 和 patient_docs.collection.count() > 0 %}
在"thead"
之前或 在 document.ready 中使用 jquery,您可以检查长度
if ($('#results-table > tbody > tr').length == 0){
$('#results-table > thead > th').css('display','none');
}