单独HTML页面上的JavaScript null属性错误

我有几个HTML页面都链接到相同的JavaScript文件(其中包含一些IIFE函数)。 其中一个功能控制只在一个页面上的某个按钮。但由于其他HTML文件连接到同一个JS文件,在他们的网页,我得到的控制台错误:单独HTML页面上的JavaScript null属性错误

Uncaught TypeError: Cannot read property 'style' of undefined 

at showDivs (scripts.js:99)

at scripts.js:82

at scripts.js:108

所以,我应该如何处理的功能,因此,只有当它检测到的元素,它应该适用风格?

(function(){ 

let left = document.getElementById("left");

let right = document.getElementById("right");

var slideIndex = 1;

showDivs(slideIndex);

function plusDivs(n) {

showDivs(slideIndex += n);

}

function showDivs(n) {

var i;

var x = document.getElementsByClassName("mySlides");

if (n > x.length) {slideIndex = 1}

if (n < 1) {slideIndex = x.length}

for (i = 0; i < x.length; i++) {

x[i].style.display = "none";

}

x[slideIndex-1].style.display = "block";

};

left.addEventListener("click", plusDivs(-1));

right.addEventListener("click", plusDivs(1));

})();

错误在行上:x [slideIndex-1] .style.display =“block”;

我已经试过把'如果x存在,然后做以上',但这似乎并没有做任何事情。

回答:

导致错误的行前添加此行:

if(x[slideIndex - 1]) 

来检查,如果你想获得的元素存在。检查数组是否存在将在您的情况下没有效果,因为该数组存在。你想知道元素是否在其中。

回答:

您需要通过函数引用而不是函数调用

的结果总结现有leftrightaddEventListener的一个函数

left.addEventListener("click", function(){ plusDivs(-1) }); 

right.addEventListener("click", function(){ plusDivs(1) });

以上是 单独HTML页面上的JavaScript null属性错误 的全部内容, 来源链接: utcz.com/qa/265130.html

回到顶部