这是两个按钮。一个是">appendChild",一个是">删除子项">
列表----之前--------------
-
一个
-
两个
-
三个
-
附加
-
附加
-----------------------
在添加了两个新元素之后,我想删除最后一个。但当我按下删除按钮时。
列表----在---------------之后
-
一个
-
两个
-
(删除(
-
附加
-
附加
-----------------------
附加的元素仍然存在。我看到很多人用jQuery解决了这个问题,但我是个新手。我想知道JavaScript是否有解决方案。
apd.onclick = function() {
let apd = document.getElementById('apd')
let node = document.createElement('li')
node.className = 'added'
let textnode = document.createTextNode('this is node content')
node.appendChild(textnode)
document.getElementById('list').appendChild(node)
}
let list = document.getElementById('list')
let rem = document.getElementById('rem')
rem.onclick = function() {
let node = document.createElement('li')
document.getElementById('list').removeChild(list.children[0])
}
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<button id="apd">click me to append child!</button>
<button id="rem">click me to remove child!</button>
您可以使用list.lastElementChild.remove();
来删除问题,而不是像@T.J-Crowder建议的那样使用addEventListener
来评论:
let list = document.getElementById('list')
let rem = document.getElementById('rem')
let apd = document.getElementById('apd')
apd.addEventListener('click', () => {
let node = document.createElement('li')
let textnode = document.createTextNode('this is node content')
node.className = 'added'
node.appendChild(textnode)
list.appendChild(node)
});
rem.addEventListener('click', () => {
list.lastElementChild.remove();
//or if you need application for IE use list.removeChild(list.lastElementChild);
});
<ul id="list">
<li>123125151</li>
<li>123125151</li>
<li>123125151</li>
<li>123125151</li>
<li>123125151</li>
</ul>
<button id="apd">click me to append child!</button>
<button id="rem">click me to remove child!</button>
参考:
- Element.lastElementChild
- Element.remove((-注意:不在Internet Explorer上,您需要在父级上使用
removeChild
- EventTarget.addEventListener((
您正在删除第一个,而不是最后一个。
您可以使用list.children.length-1],而不是list.children[0],它将是最后一个。
apd.onclick = function() {
let apd = document.getElementById('apd')
let node = document.createElement('li')
node.className = 'added'
let textnode = document.createTextNode('this is node content')
node.appendChild(textnode)
document.getElementById('list').appendChild(node)
}
let list = document.getElementById('list')
let rem = document.getElementById('rem')
rem.onclick = function() {
let node = document.createElement('li')
document.getElementById('list').removeChild(list.children[list.children.length - 1])
}
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<button id="apd">click me to append child!</button>
<button id="rem">click me to remove child!</button>