【发布时间】:2021-08-31 10:15:32
【问题描述】:
我正在尝试解决 vanilla JS 中的一个练习,但无法弄清楚我做错了什么。 如果产品价格> 300,我想将彩色文本更改为红色。
在 console.log 中我一切正常,但在 changeColor.style.color = "red"; 上我收到此错误:TypeError: Cannot set property 'color' of undefined
另外,由于页面有延迟加载,我可以在您向下滚动时获得所有价格变化吗?
谢谢
function exercise_3() {
var offer = document.querySelectorAll(".grocery-item__normal-price");
var price = document.querySelectorAll(".grocery-item__normal-price");
let changePriceColor = 300;
price.forEach( (price) => {
var changeColor = price.innerHTML.slice(0,4).replace(/,/g, '');
if (changeColor > changePriceColor) {
console.log(changeColor, "true");
} else {
console.log(changeColor, "false")
}
})
}
exercise_3();
【问题讨论】:
-
var changeColor = price.innerHTML.slice(0,4).replace(/,/g, '');- changeColor 不是元素? -
哦,是的。如果我是 console.log 我得到了我需要的东西
-
我的意思是...不是...下面列出的修复是因为您使用的是
price- 而不是changeColor -
它现在正在运行,但仅适用于页面上加载的内容。由于延迟加载,我无法在向下滚动时使其工作,因为尚未渲染。我可以这样做吗?
-
加载内容后,您必须重新调用您的函数。
标签: javascript for-loop dom