e.target
取得的是事件发生的对象,即事件源,它是 DOM 对象。
tagName
是 DOM 对象的属性,用于获取 DOM 对象的标签名,取出来是大写的,你要取小写的用 nodeName。或者用toLowerCase()
把tagName
转换成小写之后再进行比较。
e.target.dataset获取元素的值
<div class="filter">
<a data-index="1" href="javascript:;">0-100元</a>
<a data-index="2" href="javascript:;">100-300元</a>
<a data-index="3" href="javascript:;">300元以上</a>
<a href="javascript:;">全部区间</a>
</div>
document.querySelector('.filter').addEventListener('click', e => {
const{tagName,dataset}=e.target
if (tagName==='A'){
let arr=goodsList
if(dataset.index==='1'){
arr= goodsList.filter(item =>item.price>0&&item.price<=100)
} else if(dataset.index==='2'){
arr= goodsList.filter(item =>item.price>=100&&item.price<=300)
} else if(dataset.index==='3'){
arr= goodsList.filter(item =>item.price>=300)
}
render(arr)
}
})
</script>