vue事件委托 子元素中嵌套了其他元素 获取dateset 谷歌浏览器
时间: 2024-05-07 20:18:52 浏览: 116
你可以使用事件委托来监听父元素中的子元素事件,并使用 `event.target` 来获取事件源元素。如果你的目标元素是一个 `div`,并且它包含了其他元素(比如 `span`),你可以使用 `dataset` 属性来获取 `div` 元素上的自定义属性值。
示例代码如下:
HTML:
```html
<div id="parent">
<div data-id="1">
<span>子元素1</span>
</div>
<div data-id="2">
<span>子元素2</span>
</div>
<div data-id="3">
<span>子元素3</span>
</div>
</div>
```
JavaScript:
```javascript
const parent = document.getElementById('parent');
parent.addEventListener('click', function(event) {
const target = event.target;
const id = target.closest('[data-id]').dataset.id;
console.log('id:', id);
});
```
在上面的代码中,我们首先获取了父元素 `#parent`,然后给它添加了一个 `click` 事件监听器。当用户点击父元素的子元素时,事件会冒泡到父元素,并触发事件处理程序。
在事件处理程序中,我们使用 `event.target` 获取了当前触发事件的元素。然后使用 `closest` 方法获取最近的包含 `data-id` 属性的祖先元素。最后,我们获取了该元素上的 `data-id` 属性值,并输出到控制台中。
阅读全文