当找不到具有getElementsByClassName的div时,Javascript将失效.我该如何改进



我正在为Shopify主题应用程序扩展编写一个脚本,旨在查找页面上的特定div,并用我的内容替换它。然而,由于Shopify上有各种各样的主题,开发人员给这个div贴标签的方式并不一致。我想编译每一个可能的组合,并在应用程序中准备好它,以找到这个特定的div并注入我的内容。我只是从这个开始。。。

document.getElementsByClassName('my__div')[0].innerHTML = 'new content';
document.getElementsByClassName('my--div')[0].innerHTML = 'new content';

测试时,任何带有"my__div"的主题都有效。任何带有"my--div"的主题都没有。

我翻转代码的行,发现我得到了相反的效果。

当第一行无法执行时,是什么导致第二行失败?有没有一个if语句可以让它适用于所有场景?

谢谢!

Teemu向我介绍了这个解决方案。我想我会发布工作代码来帮助未来的访客。。。

var x = document.querySelectorAll(".my--div, .my__div");
var i;
for (i=0; i < x.length; i++) {
x[i].innerHTML = 'new content';
}

现在我可以在第一行中添加我找到的变体,它仍然适用于应用程序加载到的任何主题。

干杯!

最新更新