如果子跨度为空,则隐藏单元格内容

发布于 2024-12-19 08:53:36 字数 1666 浏览 1 评论 0原文

有一个表“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&#39;s Center<br />
            </span>
            <span class="Address">
                1111 North Ronald Reagan Pkwy,  <br />&#160;Avon,IN 46123      
            </span> 
            <span class="Phone">
                (317) 342-1254</span><br />
            <a class="mapdirectionsLink" href="#">map &#38; directions&#62;</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>

There is a table 'OfficeInfo' with two rows with 2 cell each. Each cell will have Office info like name, address, phone and direction link. I need to hide the direction link (google map link based on the address value) or hide the whole cell if other info like name, addreses, phone etc are blank..lets say everything else is empty, hide the 'map and directions' link as well or the whole cell...How to do in 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乞讨 2024-12-26 08:53:36

由于您没有包含最终的 html,所以很难说。始终尝试包含我们将在页面上看到的内容,而不是通用的共享点调用。

http://jsfiddle.net/Ctjcv/7/

在此示例中,我检查每个单元格是否包含任何地图类以外的子类。如果没有,那么我们可以安全地隐藏它。您将看到单元格 1 显示链接,因为存在其他数据,而单元格 2 不存在。

$('.OfficeInfo td').each( function() {
    if ($(this).children(':empty').not('.mapdirectionsLink, br').length > 0) {
        $(this).children('.mapdirectionsLink').hide();   
    }
});

As you don't include your final html it is tough to say. Always try and include what we will see on the page, not generic sharepoint calls.

http://jsfiddle.net/Ctjcv/7/

In this example I check whether each cell contains any children other than the map class. If not then we can safely hide it. You will see that cell1 shows the link because other data is present while cell 2 does not.

$('.OfficeInfo td').each( function() {
    if ($(this).children(':empty').not('.mapdirectionsLink, br').length > 0) {
        $(this).children('.mapdirectionsLink').hide();   
    }
});
拥抱我好吗 2024-12-26 08:53:36

您可以使用 text() 方法,

$('.OfficeInfo tr td').each(function() {
    if ($(this).children().not('.mapdirectionsLink').text().replace(/^\s+|\s+$/g,"") == '') {
        $(this).children('.mapdirectionsLink').hide();
    }
});

您可以在此处找到 JSFiddle

有一个额外的修剪控件。

编辑:我只是在 mrtsherman 的解决方案中添加一些额外的内容。

编辑 2:我更改了函数以在没有地图信息时隐藏所有元素JSFiddle here
如果你想删除元素(而不是隐藏),你可以更改

$(this).children('*').hide(); 

行:

$(this).children('*').remove();

You can use text() method for that

$('.OfficeInfo tr td').each(function() {
    if ($(this).children().not('.mapdirectionsLink').text().replace(/^\s+|\s+$/g,"") == '') {
        $(this).children('.mapdirectionsLink').hide();
    }
});

You can find JSFiddle here

There is an extra trim control..

EDIT : I just add some extra to mrtsherman's solution..

EDIT 2 : I changed function to hide all elements if there is no map info JSFiddle here
If you want to remove the elements (not hiding) you can change

$(this).children('*').hide(); 

line with:

$(this).children('*').remove();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文