有一个表'OfficeInfo',有两行,每行2个单元格。每个单元格都有Office信息,如姓名,地址,电话和方向链接。我需要隐藏方向链接(基于地址值的谷歌地图链接)或隐藏整个单元格,如果其他信息,如名称,地址,电话等是空白的..小时说其他一切都是空的,隐藏'地图和方向'链接以及整个单元格...如何在Jquery中做?
<table class="OfficeInfo" border="0" style="width: 100%" cellspacing="10px" cellpadding="15px">
<tr>
<td class="Office1" style="width=40%">
<span class="OfficeName">
Munster Women's Center<br />
</span>
<span class="Address">
1111 North Ronald Reagan Pkwy, <br /> Avon,IN 46123
</span>
<span class="Phone">
(317) 342-1254</span><br />
<a class="mapdirectionsLink" href="#">map & directions></a>
<br />
<br />
<span class="Hours">
MTW: 9:00 AM- 5:00 PM
</span>
</td>
<td>
<span class="OfficeName"> </span>
<span class="Address"></span>
<span class="Phone"></span>
<br />
<a class="mapdirectionsLink" href="#">map and directions</a>
<br />
<br />
<span class="Hours"></span>
</td>
</tr>
<tr>
<td>
Office3
</td>
<td>
Office4
</td>
</tr>
</table>
答案 0 :(得分:0)
由于您没有包含最终的HTML,因此很难说。始终尝试包含我们将在页面上看到的内容,而不是通用的sharepoint调用。
在此示例中,我检查每个单元格是否包含除地图类之外的任何子项。如果没有,那么我们可以安全地隐藏它。您将看到cell1显示链接,因为其他数据存在而单元格2不存在。
$('.OfficeInfo td').each( function() {
if ($(this).children(':empty').not('.mapdirectionsLink, br').length > 0) {
$(this).children('.mapdirectionsLink').hide();
}
});
答案 1 :(得分:0)
您可以使用text()方法
$('.OfficeInfo tr td').each(function() {
if ($(this).children().not('.mapdirectionsLink').text().replace(/^\s+|\s+$/g,"") == '') {
$(this).children('.mapdirectionsLink').hide();
}
});
您可以找到JSFiddle here
有一个额外的修剪控制..
编辑:我只是为mrtsherman的解决方案添加了一些额外内容..
编辑2:如果没有地图信息,我更改了隐藏所有元素的功能JSFiddle here
如果要删除元素(不隐藏),您可以更改< / p>
$(this).children('*').hide();
符合:
$(this).children('*').remove();