使用javascript获取父元素id(Chrome OS)
好的,这次我将非常具体使用javascript获取父元素id(Chrome OS),javascript,html,Javascript,Html,好的,这次我将非常具体 curAcc = 0; newItemInfo = null; newItemId = null; removeButtonId = null; function addAccount(method, account) { curAcc = curAcc + 1; if (method == "new") { newItemId = "a" + curAcc; removeButtonId = "ra" + curAcc + "btn";
curAcc = 0;
newItemInfo = null;
newItemId = null;
removeButtonId = null;
function addAccount(method, account) {
curAcc = curAcc + 1;
if (method == "new") {
newItemId = "a" + curAcc;
removeButtonId = "ra" + curAcc + "btn";
newItemInfo = {
Website: websiteIn.value,
Username: usernameIn.value,
Password: passwordIn.value,
Id: newItemId,
RemoveButton: {Id: removeButtonId}
};
} else if (method == "load") {}
console.log(newItemInfo);
newItem = document.createElement("li");
newItem.innerHTML =
"<li><label><b>Website:</b></label> <input type='text' value='" +
newItemInfo.Website + "' id='a" + curAcc + "ws'></li>" +
"<li><label><b>Username:</b></label> <input type='text' value='" +
newItemInfo.Username + "' id='a" + curAcc + "un'></li>" +
"<li><label><b>Password:</b></label> <input type='text' value='" +
newItemInfo.Password + "' id='a" + curAcc + "pw'></li>" +
"<li><button id='" + newItemInfo.RemoveButton.Id + "'>Remove</button>
</li>" +
"<br/><br/>";
newItem.setAttribute("id", newItemId);
accountList.appendChild(newItem);
removeButton = document.getElementById(removeButtonId);
removeButton.addEventListener("click", function(event) {
console.log("Button ID:" + this.id);
});
curAcc=0;
newItemInfo=null;
newItemId=null;
removeButtonId=null;
函数addAccount(方法、帐户){
curAcc=curAcc+1;
如果(方法==“新建”){
newItemId=“a”+curAcc;
removeButtonId=“ra”+curAcc+“btn”;
newItemInfo={
网站:websiteIn.value,
用户名:usernameIn.value,
密码:passwordIn.value,
Id:newItemId,
RemoveButton:{Id:removeButtonId}
};
}如果(方法==“加载”){}
console.log(newItemInfo);
newItem=document.createElement(“li”);
newItem.innerHTML=
“网站: ”+
“用户名: ”+
“密码: ”+
“删除
”+
“
”;
setAttribute(“id”,newItemId);
accountList.appendChild(newItem);
removeButton=document.getElementById(removeButtonId);
removeButton.addEventListener(“单击”),函数(事件){
日志(“按钮ID:+this.ID”);
});
}
删除按钮以及列表项是使用.innerHTML创建的。
我尝试使用accountList.removeChild(document.getElementById(newItemId));
它工作了,但是它只删除了最近创建的列表项,并且在第一次使用后没有删除任何其他内容。有人能告诉我如何使用addEventListener获得remove按钮以从列表中删除newItem吗?一旦在函数中创建元素且函数结束,Javascript将失去作用域 您可以通过将此作用域绑定到eXnet来传递它。通过使用
.bind(this)
将此
标识符绑定到函数来传递该标识符。然后可以使用target
选择器调用元素
通过使用event.target
选择器,您可以使用该按钮。该(parentNode
)的父节点是列表项本身。它的父级是实际列表。我猜您想从列表中删除li项。不仅仅是li项中的按钮
我将代码编写得更为扩展,使其更为明显
var list=document.getElementById(“list”);//列表元素
addButton=document.getElementById(“btnAdd”);//添加按钮
addButton.addEventListener(“单击”,函数(){
var newButton=document.createElement(“按钮”);//创建一个新按钮
var btnText=document.createTextNode(“删除”);//创建按钮的文本
appendChild(btnText);//将文本添加到按钮
addEventListener(“单击”,函数(事件){//为按钮创建单击侦听器
var elButton=event.target;//单击的按钮
var elLi=elButton.parentNode;//按钮所在的元素
removeChild(elLi);//从列表中删除 元素
}.bind(this));//绑定this,使“event”参数成为单击的按钮
var newItem=document.createElement(“li”);//创建一个新的 元素
appendChild(newButton);//将按钮添加到该元素
appendChild(newItem);//将 元素添加到列表中
});代码>
- 项目1
- 项目2
- 项目3
添加
这不是我想要的。我需要删除一个包含多个列表项的列表项。这段代码只删除了按钮 Remove您不能从这个答案中推断出来吗?只需添加另一个级别的lis,然后再上一个parentNode。。。。stackoverflow的目的是为编码人员提供工具来解决他们的问题,推动他们朝着正确的方向前进。而不是简单地编写代码。我已经编辑了代码,因为我认为你的意思是问题应该是。但是老实说,我们可以用100种不同的方式来写它“恰到好处”。如果这个问题的答案令人满意,你能把它标为“已回答”吗。