提问人:zeebeatz ZeeTheCreator 提问时间:5/10/2023 最后编辑:zeebeatz ZeeTheCreator 更新时间:5/10/2023 访问量:36
事件 onclick 未找到通过获取的元素,并且具有 className.include('') 的 API 无法读取
Event onclick not finding element that was fetched through and API with className.include('') cannot read properties of
问:
嗨,我正在构建一个调查网络应用程序
我正在使用 Fetch('') javascript 从 API 获取数据,现在已注入 vs code 上的实时服务器
我的预期结果是创建一个功能,将点击事件添加到获取数据的反馈列表中,并允许您按 1 点赞,然后禁用它,同时允许您单独展开调查评论的文本框我的 Udemy 老师说使用 if 语句逻辑场景来完成这项工作
问题: javascript 代码行 const upvoteIntention = clickedEl.className.includes('.upvote');
是 null,即使 API 获取的数据已实时注入服务器并且存在
尝试重新加载它
使用 .contain();
将代码放在 fetch('') 调用下,甚至将其 aysc
有很多电线和连接,但有一个被切断了,idk如何修复它,请帮忙,我需要第二个大脑
`//Upvote feature Using Events
const upVoteClick = (event) => {
const clickedEl = event.target;
const upvoteIntention = clickedEl.className.includes('.upvote');
console.log(upvoteIntention);
if (upvoteIntention) {
const upvoteBtnEl = clickedEl.closest('.upvote');
upvoteBtnEl.disabled = true;
const upvoteCountEl = upvoteBtnEl.querySelector('.upvote__count');
// increment
let upvoteCount = +upvoteCountEl.textContent;
upvoteCount = upvoteCount + 1;
// set upvote count
upvoteCount.textContent = upvoteCount;
} else {
clickedEl.closest('.feedback').classList.toggle('.feedback--expand');
}
};
feedbackList.addEventListener('click', upVoteClick);
// getting and posting feedback to componet
fetch('https://bytegrad.com/course-assets/js/1/api/feedbacks')
// converting to json
.then(response => response.json())
.then(data => {
// remove spinner on fetching
spinnerEl.remove();
data.feedbacks.forEach(eachItem => {
renderfeedbackHTML(eachItem)
});
})
.catch(error => {
feedbackList.textContent = `Failed to load data: ${error.message}`;
// customize error with html css connected element stored in js varible
});`
答: 暂无答案
评论
'.upvote__count'
可以,因为他们需要 CSS 查询。对于,您只想查找类的名称:或querySelector
closest
className
classList
className.includes('upvote')
classList.toggle('feedback--expand')