即使div中的单个ul li为空,也要删除div

时间:2011-10-25 15:15:30

标签: javascript asp.net

我有以下代码......

<div id="rem-download-ref" class="download-reference">
    <ul>
        <li><strong>Download »</strong></li>
        <li><asp:Image ID="imgepub" runat="server" align="absmiddle" ImageUrl="/images/icon/epub.png" Visible="false"  width="22" height="22" /><asp:HyperLink ID="HyperLinkePub" runat="server"
                 NavigateUrl='<%# Eval("epub_path").ToString() + Eval("epub_name").ToString() %>'
                 Visible="false">ePUB</asp:HyperLink>
        </li>
        <li><asp:Image ID="imgmobi" runat="server" align="absmiddle" ImageUrl="/images/icon/mobi.png" Visible="false"  width="22" height="22" /><asp:HyperLink ID="HyperLinkMobi" runat="server"
                 NavigateUrl='<%# Eval("mobi_path").ToString() + Eval("mobi_name").ToString() %>'
                 Visible="false">mobi</asp:HyperLink>
         </li>
    </ul>
</div>

我需要的是,如果任何 <li> 为空,那么我想删除整个div。

我怎么能用javascript做到这一点?

3 个答案:

答案 0 :(得分:1)

您的要求不太清楚。但这是你想要的吗?

$("#rem-download-ref li").each(function(i, v) {
    if ($(v).text() == "") {
        $("#rem-download-ref").remove();
        break;
    }
});

请不要忘记添加jQuery

<script type="text/javascript" src="http://jquery.com/src/jquery-latest.js"></script>

答案 1 :(得分:0)

<div>成为<asp:Panel>。然后,在容器的数据绑定事件中,如果epub_pathmobi_path为空或为空,则将面板的可见性设置为false。

如果没有更多代码,很难给出更详细的答案。什么样的控制正在进行数据绑定? GridViewListViewRepeater?什么类型的对象是数据源?

答案 2 :(得分:0)

看看这是否有帮助,您可能需要将其包装到函数中或至少放在rem-download-ref下,

确保所有元素都是内联无空格

<div id="rem-download-ref" class="download-reference"><ul><li id="o1"><strong id="ccc">Download »</strong></li><li id="o2"></li></ul></div>

var dc = document.getElementById("rem-download-ref").firstChild

for (var n = 0; n <dc.childNodes.length; n++) {
    //if (rem-download-ref not null and li not null remove rem-download-ref
   if(dc.parentNode && dc.childNodes[n].firstChild==null){
  dc.parentNode.removeChild(dc);
}