1 回答
TA贡献1862条经验 获得超7个赞
先解决下当前问题再说改进
getElementsByTagName获取到的是一个元素节点的集合(类数组),所以最后获取img元素得取0
mounted() {
const covers = document.getElementsByTagName("article")
for (let i = 0; i < covers.length; i++) {
covers[i].addEventListener("click", gotoftr)
}
function gotoftr(e) {
e = e || window.event;
let bg = e.target.style.background.slice(5, -2)
let ftr = document.getElementById("album")
let ftrcover = ftr.getElementsByTagName("img")**[0]**
ftrcover.src = bg
console.log(bg)
}
}
此外,在vue内我不太喜欢大量的js操作,包括这样去绑定click事件,是完全可以用vue的事件处理去做的。这样可能会在组件通信上占用一部分时间,但是这也可能是说明你的组件划分不够好。
至于实时页内搜索,如果state或是data中有数据的话就确定字段进行匹配,如果没有就先检索出你要进行匹配的信息。
添加回答
举报