deleteallelem
на родном языкеjs
среди,html
Элементы контента всегда существуют во вложенных отношениях на веб-странице.,поэтому,Доступ к каждому элементу веб-страницы можно получить с помощью метода дерева Траверса.,Конечно, вы также можете удалить указанные дочерние элементы.
// Функция удаления элементов
function deleteChilds() {
var ul = document.getElementsByTagName("ul")[0]; // Получить родительский DOM
// Определите, содержит ли он дочерние элементы
if(ul.hasChildNodes()) {
var len = ul.childNodes.length; // количество дочерних элементов
for(var i = 0;i<len;i++) { // Траверс
ul.removeChild(ul.childNodes[0]); // Удалить, начиная с первого элемента
}
}
}
如下是html
код
<ul>
<li>coder.itclan.cn</li>
<li>itclan.cn</li>
<li>aikelaidev.cn</li>
<li>pay.aikelaidev.cn</li>
</ul>
Удалите все узлы родительского элемента. Наше традиционное мышление упрощает написание такого кода. Следующий код невозможно удалить полностью.
function deleteChilds() {
var ul = document.getElementsByTagName("ul")[0]; // Получить родительский DOM
var len = ul.childNodes.length; // количество дочерних элементов
for(var i = 0;i<len;i++) { // Траверс
console.log(ul.childNodes[i].nodeName)
ul.removeChild(ul.childNodes[i]); // Удалить, начиная с первого элемента
}
}
Когда вы удаляете дочерний узел с индексом 0, естественно, что исходный индекс узла равен 1. В этот момент его индекс становится 0, и в это время переменная i становится 1. Когда программа продолжает работу, исходный index будет удален. Узел 2 теперь равен 1, поэтому в результате запуска программы будет удалена только половина дочерних узлов.
существовать Траверсвремя, потому чтоудалитьдочерний узел,ul.childNodes.length
стоимость была уменьшена,затронутый Траверсрезультат
Мы должны удалить сзади вперед
function deleteChilds() {
var ul = document.getElementsByTagName("ul")[0]; // Получить родительский DOM
var len = ul.childNodes.length; // количество дочерних элементов
for(var i = len-1;i>=0;i--) { // сзади вперед
ul.removeChild(ul.childNodes[i]); // Удалить, начиная с первого элемента
}
}
Ниже приведен код примера, показанного выше.
<template>
<div class="wrap">
<div>
<ul id="ul">
<li v-for="(item,index) in lists" :key="index"><span>{{item}}</span><el-button type="danger" @click="handleDelteItem(index)" size="mini">удалить</el-button></li>
</ul>
</div>
<div class="deletAllBtn">
<el-button type="primary" @click="handleDelete">удалитьвсе элементы</el-button>
</div>
</div>
</template>
<script>
export default {
name: 'deleteChildELem',
data() {
return {
lists: ["coder.itclan.cn",'itclan.cn','tv.itclan.cn','short.itclan.cn','aikelaidev.cn']
}
},
methods: {
handleDelete() {
// this.lists = []; // Если вы используете мышление программирования Vue, удаляете все подэлементы и напрямую управляете массивом, чтобы он стал пустым, все подэлементы будут удалены.
// Это реализовано с использованием встроенного js, в основном для демонстрации того, как работать с дочерними узлами. Если в проекте vue вы работаете с DOM, использование vue не будет иметь никакого смысла или ценности.
var ul = document.getElementById('ul');// Получить DOM родительского элемента
// Определите, содержит ли он дочерние элементы
if(ul.hasChildNodes()) {
var len = ul.childNodes.length; // количество дочерних элементов
for(var i = 0;i<len;i++) {
ul.removeChild(ul.childNodes[0]); // Удалить, начиная с первого элемента
}
}
// Это также может быть эквивалентно следующему: удаление узлов в обратном порядке.
/**
*
* for(var i = ul.childNodes.length-1;i>=0;i--) {
ul.removeChild(ul.childNodes[i])
}
*
*/
},
handleDelteItem(index) {
// Если вы используете vue, то достаточно метода непосредственного управления массивом, и его можно решить одной строкой кода.
this.lists.splice(index,1);
}
}
}
</script>
<style lang="scss" scoped>
.wrap {
text-align:center;
}
span{
display:inline-block;
width: 200px;
}
ul>li {
margin-bottom: 5px;
border-bottom: 1px dashed #ccc;
}
.deletAllBtn {
margin-top: 20px;
}
</style>
Удалить все дочерние элементы массива,существоватьVueсреди直接清空数组Вот и все了也就是this.lists = []
Вот и все,иудалить Текущий элемент используетthis.lists.splice(index,1)
;,splice
Просто метод
Работаем над некоторыми списками,Добавить и удалить,Или удалить все,Это относительно распространенная операция,Используйте роднойJs
всеудалить Операция,сквозной цикл Траверс,Удалить по одному,И в кадре,это массив операндов,хочу удалить все,Просто очистите данные массива