Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ul中删除li元素_Javascript_Jquery_Html_Html Lists - Fatal编程技术网

Javascript 从ul中删除li元素

Javascript 从ul中删除li元素,javascript,jquery,html,html-lists,Javascript,Jquery,Html,Html Lists,考虑到li元素的id,是否可以使用JavaScript动态地从ul中删除几个li元素 关于实际问题的最新情况: 我有以下清单 <ul id="attributes" data-role="listview"> <li id="attrib01">Attribute1</li> <li id="attrib02">Attribute2</li> <li id="attrib03">Attribute3&

考虑到li元素的id,是否可以使用JavaScript动态地从ul中删除几个li元素

关于实际问题的最新情况:

我有以下清单

<ul id="attributes" data-role="listview">
    <li id="attrib01">Attribute1</li>
    <li id="attrib02">Attribute2</li>
    <li id="attrib03">Attribute3</li>
    <li id="attrib04">Attribute4</li>
    <li id="attrib05">Attribute5</li>
</ul>

我已确保收到正确的ajax响应。所以,现在的问题是,当我删除attrib4时,attrib[1-3]也会被删除。知道为什么会发生这种情况吗?

这将使
li
元素不可见:

document.getElementById("id_here").style.visibility = "hidden";
免责声明:它们仍将在DOM中

要从DOM中删除元素,请使用JQuery的
.remove()
方法:

$("#id_here").remove();
试试看

var elem = document.getElementById('id');
elem.parentNode.removeChild(elem);

如果获得元素,则找到其父元素,然后删除该元素。从家长处获得如下信息:

element = document.getElementById("element-id");
element.parentNode.removeChild(element);
必须遍历父元素,因此这是不可避免的。

$(“#id”).remove()
是删除单个元素的正确方法。注意,元素ID在html中必须是唯一的,并且调用必须包装在DOM就绪函数中

基于你的html。它循环遍历所有列表项,并删除数据对象中id不存在的项:

var data = {
    attrib01: "Number 1",
    attrib02: "Number 2",
    attrib04: "Number 4"
};

$(document).ready(function() {
    $("ul > li").each(function() {
        alert(this.id in data); //check if value is defined
        if(!(this.id in data)) {
            $(this).remove();
            // This also works:
            //$('#'+this.id).remove();
        }            
    });
});​
只需执行以下操作,也可以只针对单个元素()并将其删除:

$(document).ready(function() {
    $("#attrib04").remove();
});​

小心你的ID——它们必须完全匹配<代码>属性04!=attrib4

我尝试了$(“#li元素的id”).remove()。这将删除列表中的所有li元素。如果将li的实际id作为jquery选择器,则不会删除所有li。请包含您尝试过的代码示例。那么您使用的是jQuery?你看过文件了吗?无论如何,该代码应该只删除一个元素。你在重复使用ID吗?这是UL上的ID而不是LI吗?@Ashwin这实际上就是使用jQuery的方式。你的错误在其他地方。这里没有足够的信息,因此没有任何用处。运行一个基本的jQuery教程,您将知道如何操作。
$(document).ready(function() {
    $("#attrib04").remove();
});​