繁体   English   中英

页面加载后如何使用jQuery删除li元素?

[英]How to remove the li element using jQuery after page load?

我确实已经搜索并用Google搜索了此功能,并看到了remove函数,但是我所看到的所有示例都在不同的上下文中执行此操作。 我只希望删除具有logout.html链接的li。 我知道您不能将id分配给li元素,因此如何动态删除特定元素?

谢谢

<ul data-role="listview">
                        <li>
                            <a href="user_settings.html">
                                <img src="images/info/info-settings.png" width="30" height="30" class="ui-li-icon"/>
                                <h2>User Settings</h2>
                            </a>
                        </li>
                        <li>
                            **<a href="logout.html">
                                <img src="images/info/info-logout.png" width="30" height="30" class="ui-li-icon"/>
                                <h2>Logout</h2>
                            </a>**
                        </li>
                        <li>
                            <a href="http://someurl.com/store?app=ok" rel="external">
                                <img src="images/info/info-also-from.png" width="30" height="30" class="ui-li-icon"/>
                                <h2>Also from Us</h2>
                            </a>
                        </li>
                        <li>
                            <a href="about_us.html">
                                <img src="images/info/info-aboutUs.png" width="30" height="30" class="ui-li-icon"/>
                                <h2>About Us</h2>
                            </a>
                        </li>
                        <li>
                            <a href="about_us.html">
                                <img src="images/info/infsomeimage.png" width="30" height="30" class="ui-li-icon"/>
                                <h2>About Us</h2>
                            </a>
                        </li>
                        <li>
                            <a href="about_legal_info.html">
                                <img src="images/info/info-legalInfo.png" width="30" height="30" class="ui-li-icon"/>
                                <h2>Legal Info</h2>
                            </a>
                        </li>
                        <li>
                            <a href="about_international_dates.html">
                                <img src="images/info/info-international.png" width="30" height="30" class="ui-li-icon"/>
                                <h2>About International Dates</h2>
                            </a>
                        </li>
                    </ul>

没有什么可以阻止您向li元素添加id的。 这是完全有效的。 但是,没有一个,您可以使用has方法:

$("li").has("a[href='logout.html']").remove();

这将选择所有li元素,然后将其减少为仅包含与选择器匹配的元素的那些元素。 它使用属性等于选择器将href匹配到您的注销链接。

还有许多其他方法可以执行此操作。 另一个示例是:contains选择器,它与元素或其任何后代中的文本(而不是选择器)匹配:

$("li:contains('Logout')").remove();

显然,您将必须小心,因为在任何一种情况下都存在多个与选择器匹配的元素,它们都将被删除。 在这种情况下,您将必须以某种方式使选择器更加具体。

您可以为li元素添加一个id

要使用jQuery删除它而不这样做:

$('li a[href="logout.html"]').closest('li').remove();

小提琴的例子

$(document).ready(function() {

  $('li a[href="user_settings.html"]').parents('li').first().remove();

});

首先,您可以为li元素分配ID。 您可以具有<li id="some_id" ></li>

其次,您可以使用以下代码(没有ID)隐藏li元素-或在此处查看工作示例

$('a[href="logout.html"]').parent().css('display', 'none');

这应该放在文档的onload回调中,以便在加载页面后执行:

$(function (){
    $('a[href="logout.html"]').parent().css('display', 'none');
});

$("ul li:nth-child(2)").remove(); 如果您的logout.html li应该始终是第二个元素,或者您可以尝试$('a[href="logout.html"]').parent().remove(); ;,这将起作用$('a[href="logout.html"]').parent().remove();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM