Javascript-单击时需要删除li元素

Javascript-单击时需要删除li元素,javascript,Javascript,我正在做一项任务,需要一些帮助。使用JavaScript,我需要在removietem()函数中使用.target事件属性,以便在单击li元素时删除它们。有人能帮忙吗?我的代码如下 职能岗位(项目){ this.item=项目; this.print=函数(){ var s=本项目; 返回s; } } var postList=[]; window.onload=init; 函数init(){ var submitButton=document.getElementById(“submitBu

我正在做一项任务,需要一些帮助。使用JavaScript,我需要在removietem()函数中使用.target事件属性,以便在单击li元素时删除它们。有人能帮忙吗?我的代码如下

职能岗位(项目){
this.item=项目;
this.print=函数(){
var s=本项目;
返回s;
}
}
var postList=[];
window.onload=init;
函数init(){
var submitButton=document.getElementById(“submitButton”);
submitButton.onclick=getAddedItem;
}
函数getAddedItem(){
var itemInput=document.getElementById(“项目”);
var item=itemInput.value;
如果(项==null | |项==“”){
警告(“请输入项目”);
返回;
}否则{
var岗位=新岗位(项目);
postList.push(post);
addPostToList(post);
var theForm=document.querySelector(“表单”);
reset()形式;
}
函数addPostToList(post){
var postList=document.querySelector(“ul”);
var li=document.createElement(“li”);
li.onclick=removietem(li);
postList.appendChild(li);
li.innerHTML=post.print();
}
};
功能删除项(li){
var测试=document.getElementsByTagName(“li”);
对于(i=0;i
p{
字体:斜体
}
李:悬停{
光标:指针
}

添加项目:
单击某个项目以将其从列表中删除


以下是您要更改的代码部分(请参见备注):


这里有一个完整的JSBin:

您需要格式化代码,并将HTML和JavaScript部分分开。这是非常不可读的。应该不需要使用事件目标,在处理函数中使用
This
就足够了。在javascript中,不同意@CBroe
This
是一个模糊的规则。尽可能避免使用
this
(这几乎总是可能的)。不同意@GeorgeMauer-如果你写js,你应该知道
这个
是如何工作的。可以在有意义的地方使用它,例如在事件处理程序或构造函数中。这并不令人困惑。是的,但如果有完全合理的替代方案,你为什么要这么做?保存几个字符?这不是黑客行为,只是做出了不那么模棱两可的选择。
function addPostToList(post) {
    var postList = document.querySelector("ul");
    var li = document.createElement("li");
    //Don't apply removeItem here. Just give the function name
    //The event will be passed to removeItem
    li.onclick = removeItem;
    postList.appendChild(li);
    li.innerHTML = post.print();
}


function removeItem(e) {    
    e.target.parentElement.removeChild(e.target);
}