1

我认为我的问题有点愚蠢,但我有一个问题。有几个 html 页面,例如:index.html 和 rooms.html 等......还有一个 main.js 文件,其中包含所有 .html 页面的脚本。问题是我有一个变量,比如

const HTMLelement = document.querySelector('.className');

以及一些与此 HTML 元素一起使用的函数。但是,这个元素只在 index.html 页面上,当我在 rooms.html 页面上时,我有一个错误,导致 HTMLelement 没有定义并且其他脚本不存在(它很重要,导致一些 html 由脚本构建。)另外,在 main.js 我有所有页面的脚本,所以我不能创建新的 .js 文件......那么,separate为不同的 html 页面编写脚本的最佳方法是什么?

4

2 回答 2

2

这里有几种解决问题的方法

为每个页面创建特定的单独脚本

  • rooms.html -> rooms.js
  • index.html -> index.js

在你做某事之前检查节点的存在

if(document.querySelectorAll('.className').length == 0){
     // do things
}

在你做某事之前检查当前页面

if(window.location.pathname.indexOf('rooms.html') != -1){
     // do things
}

希望能帮助到你

于 2018-01-19T15:26:47.083 回答
0

在尝试使用某个元素之前,请始终验证它是否存在。

const oneEl = document.querySelector('.one');
if (oneEl) {
  oneEl.setAttribute('title', 'This is one');
}

// Below I am trying to get an element by the wrong class name.
const twoEl = document.querySelector('.two');
if (twoEl) {
  // This code will not run
  twoEl.setAttribute('title', 'This is two');
}
<div class="one">One</div>
<div class="too">Two</div>

于 2018-01-19T15:29:05.123 回答