Ulを削除せずにulのli要素を削除する方法はありますか?これしか見つけられないようです。
var element = document.getElementById('myList');
element.parentNode.removeChild(element);
しかし、これはulを削除します。私はli要素を削除するたびにulをcreateElement ulする必要なく、その場でli要素を削除して追加できることを望んでいます。より単純な方法を探しています。助けてくれてありがとう。
<div id="listView">
<ul id="myList" class="myList-class">
<li>item 1</li>
<li>item 2</li>
</ul>
</div>
このようなことができます。
var myList = document.getElementById('myList');
myList.innerHTML = '';
JQueryを使用している場合
$('#myList').empty();
これらの両方は、リスト内のすべてを削除します。
これでうまくいくはずです:
var lis = document.querySelectorAll('#myList li');
for(var i=0; li=lis[i]; i++) {
li.parentNode.removeChild(li);
}
ul
を削除しているのは、element
変数がul
を指しているためです。次に、次のコード行が親(#listView
)に移動し、removechild
変数(element
要素を指す)が渡されたul
メソッドを適用しますそれに。
すべてのli要素を削除する必要がある場合は、次を使用できます。
document.getElementById('myList').innerHTML = '';
ul
を完全に空にします。選択したli
要素を削除する必要がある場合は、次のように#myList
から特定の子要素に移動できます。
var ulElem = document.getElementById('myList');
ulElem.removeChild(ulElem.childNodes[i])
ここで、i
は、削除するli
のインデックスです(1番目は0、2番目は1など)。
参照: https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild
最初の子がいる限り、それを削除します。 (メンバーが1人でもいる限り)。
const removeNodesFromList = () => {
const nodes = document.querySelector('.ul-class-selector');
while (nodes.firstChild) {
nodes.removeChild(nodes.firstChild);
}
};