下面是一个列表,点击哪一项,哪一项删除。 提示: 1. 给 ul 注册点击事件,然后利用事件对象的 target 来找到当前点击的 li,因为点击 li,事件会冒泡到 ul 上, ul 有注册事件,就会触发事件监听器。 2. e.target 这个可以得到我们点击的对象
时间: 2023-07-15 10:10:12 浏览: 56
好的,这是一个比较常见的需求,下面是一个示例代码,希望可以帮到您:
HTML:
```html
<ul id="list">
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
<li>第五项</li>
</ul>
```
JavaScript:
```javascript
const list = document.getElementById('list');
list.addEventListener('click', (e) => {
const target = e.target;
if (target.tagName.toLowerCase() === 'li') {
target.parentNode.removeChild(target);
}
});
```
这段代码中,我们给 `ul` 注册了一个点击事件监听器,当用户点击 `li` 时,会触发该事件监听器。在事件处理函数中,我们通过 `e.target` 得到当前被点击的对象,然后判断该对象是否为 `li` 元素。如果是 `li` 元素,就调用 `parentNode.removeChild()` 方法,将该元素从 `ul` 中删除。
相关问题
设计一个快捷菜单,添加点击事件,同时获取选中的列表项内容
好的,我可以为您提供一个基本的快捷菜单的设计,您可以在此基础上进行修改:
HTML 代码:
```html
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">选择菜单项
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">菜单项1</a></li>
<li><a href="#">菜单项2</a></li>
<li><a href="#">菜单项3</a></li>
</ul>
</div>
```
JavaScript 代码:
```javascript
$('.dropdown-menu').on('click', 'li a', function() {
var selectedItem = $(this).text();
alert('您选择了菜单项:' + selectedItem);
});
```
这段代码会在用户点击菜单项时触发事件,并获取选中的列表项内容,最后弹出一个提示框告诉用户选择的是哪个菜单项。您可以根据自己的需求修改代码。
点击左侧列表的某一项,把这一项的子数据赋值给右侧列表
好的,那我来给你举一个例子,这个例子中包含了左侧列表和右侧列表,当你点击左侧列表的某一项时,它的子数据会赋值给右侧列表。
HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue Page with Two Lists</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="your-custom-js-file.js"></script>
</head>
<body>
<div id="app">
<h2>List One</h2>
<ul>
<li v-for="(item, index) in listOne" @click="selectItem(index)">{{ item.title }}</li>
</ul>
<h2>List Two</h2>
<ul>
<li v-for="item in listTwo">{{ item }}</li>
</ul>
</div>
</body>
</html>
```
JS 代码:
```js
var app = new Vue({
el: '#app',
data: {
listOne: [
{ title: 'Item 1', subItems: ['Sub Item 1', 'Sub Item 2', 'Sub Item 3'] },
{ title: 'Item 2', subItems: ['Sub Item A', 'Sub Item B', 'Sub Item C'] },
{ title: 'Item 3', subItems: ['Sub Item X', 'Sub Item Y', 'Sub Item Z'] }
],
listTwo: []
},
methods: {
selectItem: function(index) {
this.listTwo = this.listOne[index].subItems;
}
}
});
```
在这个例子中,我们定义了两个列表 listOne 和 listTwo,其中 listOne 包含了三个项目,每个项目都有一个 title 和一个 subItems 属性。在 HTML 中,我们使用 v-for 指令循环渲染 listOne 中的每一个项目,并且给每个项目绑定了一个点击事件。当点击左侧列表的某一项时,它的索引会被传递给 selectItem 方法,然后方法会将该项的子数据 subItems 赋值给 listTwo,从而实现了右侧列表的更新。
你可以根据自己的需求来修改这个例子,以适应你的项目。