嗨,我正在构建一个 Survey Web APP
我正在使用 Fetch('') javascript 从 API 获取数据,现在注入到 vs code 上的实时服务器
我的预期结果是创建一个功能,将点击事件添加到获取数据的反馈列表中,并允许您按 1 投票然后禁用它,同时允许您单独扩展调查评论的文本框,我的 udemy 老师说要使用使这项工作有效的 if 语句逻辑场景
问题: javascript 代码行 const upvoteIntention = clickedEl.className.includes('.upvote');
即使 API 获取的数据已实时注入服务器并且存在
也是空的尝试重新加载它
使用 .contain();
将代码放在 fetch('') 调用下,甚至调用它的 aysc
`//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');
// converting string to number +
let upvoteCount = +upvoteCountEl.textContent;
// increment by one
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
});`