HTML字符串:
var ul = document.getElementById("list");
$("#list").append(
"<li class='margbottom'>" +
"<label id='id_'><img src='images/icon-approved1.png' class='imgspace' align='absmiddle'/><span id='categoriesName'>" + categoryName + "</span>: <span id='categoriesValue'>" + value + "</span></label>" +
"<div class='menuicon'>" +
"<ul>" +
"<li><a href='#url' onclick='removeCategory();'><img src='images/icon_minus.png'></a></li>" +
"<li><a href='#url'><img src='images/icon-searchby-s.png'></a></li>" +
"</ul>" +
"</div>" +
"</li>"
);
JS:
function removeCategory(){
alert("Inside removeCategory");
var elem = document.getElementById('list');
elem.parentNode.removeChild(elem);
}
我已创建动态列表,我需要动态删除它。通过调用removeCategory它将删除所有元素而不是特定元素。 有人可以帮忙吗? 在此先感谢。
答案 0 :(得分:2)
在这种特定情况下,您应该将this
传递给removeCategory函数并将其用作元素。
所以,基本上 -
<a href='#url' onclick='removeCategory();'
应该是 -
<a href='#url' onclick='removeCategory(this);'
功能应该是 -
function removeCategory(elem){
alert("Inside removeCategory");
elem.parentNode.removeChild(elem);
}
但是,不鼓励在这样的JavaScript中添加HTML。如果必须,至少不要使用内联事件侦听器,而是使用jQuery添加它们($("#list a").on("click", removeCategory);
,然后在更新的函数中使用this
而不是elem
)。
此外,您的代码确实删除了整个列表,因为您始终删除具有list
ID的元素的父元素。
答案 1 :(得分:2)
在jQuery中你可以这样做:
将类'removeLink'
添加到您的代码中。无需onClick()
行动。
要移除的jQuery代码:
$('removeLink').click(function(){
var iconDiv = $(this).closest('.menuicon');
var li = iconDiv.closest('<li>');
li.remove();
});
答案 2 :(得分:1)
$("ul").find("[particular li selector]").remove();
以上只是一个起点。这一切都取决于您对特定li的访问权限。您可以直接(通过id)或通过父亲以某种方式访问它。
如果可能,请执行此操作
$("#particularLI").remove();