javascript - Wordpress 和 JavaScript:当产品没有 sku 时尝试隐藏按钮
问题描述
我的 Wordpress 网站遇到这种情况,其中具有变体的产品在访问 DOM 时会丢失某个元素上的一些内部文本(这与没有 sku 的产品的行为相同),但是当我 console.log 元素时,文本在那儿。这是代码:
const makerBtn = document.getElementById("maker-button");
const sku = document.getElementsByClassName("sku");
const newLink = document.createElement("a");
newLink.innerText = "Buy at Maker's Site";
newLink.className += "fusion-button button-flat fusion-button-default-size button-custom button-3 fusion-button-default-span fusion-button-default-type";
newLink.addEventListener("click", ()=> {
newLink.target = "_blank";
newLink.href = sku[0].innerHTML.toString();
});
makerBtn.appendChild(newLink);
我已经在 sku 中的某些产品中添加了 url,如果它们在那里,那么您单击按钮,您将被带到一个新站点。我一直在尝试找到一种方法来隐藏没有 sku 的按钮,但是如果我添加这样的代码:
if (sku[0].innerHTML === "") {
newLink.style.display = "none";
}
它会起作用,除了对于具有变化的产品(它们有一个下拉菜单,您可以在不同的颜色之间进行选择等)隐藏按钮之外,它会起作用,因为 sku[0].innerHTML 将 DOM 作为空字符串击中,即使我控制台记录它并且网址在那里。
我无法弄清楚我可以将这些变量产品的哪个属性添加到条件中,以便这些页面的行为有所不同。感谢您的任何帮助。
解决方案
也许你可以试试:
if (sku[0].innerHTML === "") {
newLink.style.opacity= "0.0";
}
推荐阅读
- html - 即使正确的网格系统,Bootstrap4 列也会堆叠而不是并排放置
- javascript - javascript to typescript:混合基于原型的对象和基于类的对象
- apache-kafka - 在 Kafka 生产者上启用幂等性是否会降低吞吐量
- python - on_message 等待用户对消息做出反应或超时,然后机器人再次发送另一条带有反应的消息
- javascript - 在 JS 控制台中运行代码时收到错误消息
- javascript - 在 React JS 中动态选择状态对象名称
- amazon-web-services - 有没有办法在 s3 中为预签名的 url 设置时间限制?
- javascript - Intersection Observer 工作,元素在淡入后消失
- php - 使用 GET 关联 switch 语句
- python - 如何使用 if 语句检查键名是否存在于字典中?