为什么我的 javascript 只执行第一行? Prestashop 商店

Why my javascript execute just the first lines ? Prestashop

我正在用 CMS Prestashop 建立一个网站,我正在尝试改变它的风格。 在 Prestashop 中,我们可以添加一个 javascript 文件并进行一些更改,但是系统只执行第一个 lines.So 问题是,为什么?

也许它来自我的代码。

window.onscroll = function () {
    var title = document.getElementById('header_menu');
    if (window.pageYOffset > 100) {
        title.classList.add("white_menu");
    } else {
        title.classList.remove("white_menu");
    }
};

var title_cat = document.getElementById("main").getElementsByClassName( 'h1' )[0];
title_cat.classList.add("font_size_null");

var research_bar= document.getElementById('_desktop_search');
research_bar.classList.add("research");

当我尝试更改我的行的顺序时,只执行了第一个更改。

提前致谢, 疾病

可能是因为 getElementById 方法仅适用于 DOMDocument 对象(在浏览器中为文档)。 您正在尝试访问 DOM 元素的 DOM 文档,这是不可能的。 (您不能“链接”多个 getElementById()

对于具有“main id”的元素的子元素的所有 h1 元素,我们可以使用类似的东西:

var title_cat = document.querySelectorAll("#main h1");

或者如果我们只对第一场比赛感兴趣(如您的示例):

var title_cat = document.querySelector("#main h1");