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

单独HTML页面上的JavaScript null属性错误,javascript,html,typeerror,Javascript,Html,Typeerror,我有几个HTML页面都链接到同一个JavaScript文件(其中包含许多IIFE函数)。 其中一个功能控制仅在一页上的某个按钮。但由于其他HTML文件连接到同一个JS文件,因此在它们的页面上我得到控制台错误: 那么,我应该如何处理函数,以便只有当它检测到元素时,才应用样式 (function(){ let left = document.getElementById("left"); let right = document.getElementById("ri

我有几个HTML页面都链接到同一个JavaScript文件(其中包含许多IIFE函数)。 其中一个功能控制仅在一页上的某个按钮。但由于其他HTML文件连接到同一个JS文件,因此在它们的页面上我得到控制台错误:

那么,我应该如何处理函数,以便只有当它检测到元素时,才应用样式

(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));

})();
(函数(){
left=document.getElementById(“左”);
let right=document.getElementById(“right”);
var slideIndex=1;
showDivs(slideIndex);
函数plusDivs(n){
showDivs(slideIndex+=n);
}
函数showDivs(n){
var i;
var x=document.getElementsByClassName(“mySlides”);
如果(n>x.length){slideIndex=1}
如果(n<1){slideIndex=x.length}
对于(i=0;i
错误出现在以下行:x[slideIndex-1].style.display=“block”


我已经尝试输入“如果存在x,则执行上述操作”,但似乎没有任何效果。

在导致错误的行之前添加这一行:

if(x[slideIndex - 1])

检查您试图获取的元素是否存在。检查数组是否存在对您的情况没有影响,因为数组存在。您想知道元素是否在其中。

您需要传递函数引用,而不是函数调用的结果

将现有的
左侧
右侧
addEventListener
封装到函数中

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

请将错误内容粘贴为引用文本,而不是图像。请检查slideIndex的值和XYE的长度,这是有意义的,但这不是正确的issue@mts396真正地你能用
分享一个工作片段来演示这个问题吗?抱歉@gurvinder372,我的意思是你所包含的代码是正确的,并且可以工作,但这不是我遇到的问题。对我来说,问题是不包含该元素(x)的HTML文件在引用相同的JS文件时显示错误。所以我想知道如何避免这种情况。我可以添加一个JSFIDLE,但这意味着我必须放入单独的HTML文件来演示这个问题。
left.addEventListener("click", function(){ plusDivs(-1) });
right.addEventListener("click", function(){ plusDivs(1) } );