2014-09-23 2 views
0

Я использую дополнительные пользовательские поля в WordPress для создания новых типов контента. В моем шаблоне, я стиль текста, чтобы быть в виде таблицы, как так:Скрыть строку таблицы, если нет данных

<table class="members"> 
<thead> 
</thead> 
<tbody> 
<tr> 
    <td> 
    <h3>Basic Information</h3> 
    </td> 
</tr> 
<tr> 
    <td> 
    <p><strong>Parent Organization:</strong> <?php the_field('parent_organization'); ?></p> 
    </td> 
</tr> 
</tbody> 
</table> 

Теперь, если член сайта не поставил в своей головной организации, я хочу, чтобы скрыть, что весь ряд. Я рассмотрел несколько других примеров того, как это сделать в jQuery, но никакой ответ не работает. Поскольку я использую дочернюю тему, я добавил новую функцию functions.php и свою собственную child-theme-custom.js в мою папку дочерних тем.

Примеры трех попыток, которые не работали:

$('.members tr').filter(function(){ 
    return $(this).find('td:eq(1):empty').length > 0; 
}).hide(); 

$('.members td').find('td:eq(1):empty').parent().hide(); 

$('.members > tbody > tr').has('td:empty').hide() 
+0

Вы можете использовать: пустой селектор css для отображения: hide; независимо от того, что вы хотите ... – henser

+0

Скорее всего, ваш JS запускается до того, как DOM готов ... для подтверждения, прямо перед кодом выше, добавьте эту строку: 'alert ($ ('. members'). length)' – PeterKA

ответ

0

Прежде всего, тд не пуст, потому что вы показываете это или нет, присутствует «parent_organization»:

<p><strong>Parent Organization:</strong></p> 

Таким образом, ячейка не пуста. Ознакомьтесь с этой скрипкой для некоторого топлива для вашего мозга: http://jsfiddle.net/mx07d7fz/

Плюс это хорошая идея, чтобы убедиться, что ваш DOM готов, как указано в комментарии пользователя3558931.

Смежные вопросы