gpt4 book ai didi

Javascript - 删除按钮和 parent

转载 作者:行者123 更新时间:2023-11-30 17:46:57 24 4
gpt4 key购买 nike

您好,我刚刚开始学习 Javascript,在学习了一些教程之后,我认为通过制作东西来练习一些 Javascript 会很好。

所以现在我正在尝试制作一个非常简单的待办事项列表。只是为了练习,但我被卡住了。我设法用 JS 将带有删除按钮的项目添加到 UL。但是,但是:

我如何做到这一点;当你点击 removeMe 按钮时,只有那个 Li 会被删除?我应该使用什么?这是我的代码:

var buttonAdd = document.getElementById('but1');
var buttonRemove = document.getElementById('but2');

var ul = document.getElementById('myUl');

function addLi() {
var newLi = document.createElement('li');
var removeThis = document.createElement('button');
var textInput = document.getElementById('inputText').value;
if(textInput === ""){
alert('Add text');
}else{
newLi.innerHTML = textInput;
newLi.appendChild(removeThis);
removeThis.innerHTML = "Remove me";
removeThis.setAttribute("onClick", "removeMe(this);");
ul.appendChild(newLi);
}
}

buttonAdd.onclick = function() {
addLi();
};

buttonRemove.onclick = function() {
ul.innerHTML = "";
};

function removeMe(item){
//get called when clicked on the remove button
}

和我的 HTML:

<body>
<ul id="myUl"></ul>
<input id="inputText" type="text"><br />
<button id="but1">Add stuff</button><br />
<button id="but2">Remove all</button>
</body>

谢谢

最佳答案

函数 remove() 是一个 brand new DOM 4 method并且还没有得到广泛的支持。笨重但防弹的方法是:

function removeMe(item){
item.parentElement.parentElement.removeChild(item.parentElement);
}

或者更优雅一点:

function removeMe(item){
var parent = item.parentElement;
parent.parentElement.removeChild(parent);
}

http://jsfiddle.net/BtbR4/

还要小心:

removeThis.setAttribute("onClick", "removeMe(this);");

将函数引用作为字符串传递总是一个坏主意,原因有几个(求值字符串,弄乱作用域)。有几个更好的选择:

removeThis.onclick = removeMe;

或者如果需要交参数

removeThis.onclick = function(){removeMe(your,parameters)};

然而,最好的选择是 attach eventhandlers总是这样:

Element.addEventListener("type-of-event",functionReference);

关于Javascript - 删除按钮和 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19957687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com