Javascript 使用li的id从ul中删除li

Javascript 使用li的id从ul中删除li,javascript,html,Javascript,Html,我在li的选项中有下拉列表。我想动态删除具有特定id的li。结构如下所示 <ul class="es-list" style="top: 305.483px; left: 191.25px; width: 194px; display: block;"> <li id="from_7" class="" value="7" style="display: block;">Adelaide</li> <li id="from_1" cla

我在li的选项中有下拉列表。我想动态删除具有特定id的li。结构如下所示

<ul class="es-list" style="top: 305.483px; left: 191.25px; width: 194px; display: block;">

    <li id="from_7" class="" value="7" style="display: block;">Adelaide</li>
    <li id="from_1" class="" value="1" style="display: block;">Alexandria</li>
    <li id="from_17" class="" value="17" style="display: block;">Antwerp</li>
    <li id="from_19" value="19" style="display: block;">Aqaba</li>

但是它并没有删除li

我相信您可以通过JS/jQuery动态添加元素。如果是这样的话,请将您的线路改为

$('body #from_7').remove();
还要确保页面中包含jQuery插件

这种行为的原因是,每当您在页面上动态添加项目时,例如,您通过JS在加载页面时存在的空白中添加项目,那么选择器必须:

$('<name of any parent which existed when page loaded> <actual element selector, in your case is ID of element>');
我添加了body作为li的父对象,因为加载页面时,始终存在一个父对象

稍后编辑:

请尝试在document.ready中添加此命令,并且仅在确实添加了元素之后。在添加元素之前不要执行它,因为不会发生任何事情

  $(document).ready(function(){
        // code that adds `<li>`


        // other code...

        // remove your targeted LI element only when you press on any LI, and ONLY after its been added to the list
        $('body ul.es-list').on('click','li', function(){
              $('body ul.#from_7').remove();
        })
  });
试一试


您必须检查浏览器控制台是否有错误,我认为您的代码中缺少jQuery库文件

$document.readyfunction{ $'从_7.删除; }; 阿德莱德 亚历山大港 安特卫普 亚喀巴
chk浏览器控制台的错误,因为它的工作在我这边很好工作很好,你有多个li,id来自_7吗?devpro控制台中没有错误我检查了id是unique@hrishi打开developer tools F12,选择console选项卡,并在那里检查错误。如果有,请写在此处。是下拉选项是动态生成的。它是可编辑的选择下拉列表。但解决方案并不适用于任何人me@hrishi另外,正如devpro已经回答的那样,尝试将remove命令包装在$document.readyfunction{$'from_7.remove;};我称之为ajax成功,它正在发挥作用。在ajax成功中,我得到的id是removed@hrishi请添加用元素填充的AJAX代码,包括删除li的行,我们可能会帮助您;它正在显示document.getElementById。。。在控制台中为空
  $(document).ready(function(){
        // code that adds `<li>`


        // other code...

        // remove your targeted LI element only when you press on any LI, and ONLY after its been added to the list
        $('body ul.es-list').on('click','li', function(){
              $('body ul.#from_7').remove();
        })
  });
var elem = document.getElementById('id');
elem.parentNode.removeChild(elem);