提问者:小点点

未捕获的TypeError:无法读取undefined的属性“style”-我已将脚本添加到body属性的底部


这是双子城的项目。这个项目在我自己的服务器--本地主机上运行得非常好。但当我在ionos服务器上尝试时,它不起作用。如果你进入我的网站sharminrony.co.uk并跟踪双城项目的链接,那么你自己就能看到错误。它在ionos服务器中不起作用,但在localhost中起作用。知道这有什么问题吗??

document.addEventListener("DOMContentLoaded", function(event) { 
//do work

var slideIndex = 1;

window.onload = function() {
    showDivs(slideIndex);**strong text**
};

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";    //throwing error in this line
}

function openWeather(evt, day) {
  var i, tabcontent, tablinks, display;
  
  window.location.href='#weatherHours';

  tabcontent = document.getElementsByClassName("tabcontent");

  for (i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }

  tablinks = document.getElementsByClassName("tablinks");

  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].className = tablinks[i].className.replace(" active", "");
  }

  display = document.getElementsByClassName(day);

  for (var i=0; i < display.length; i+=1)
  {
    display[i].style.display = 'inline-block';
  }
  
  evt.currentTarget.className += " active";
}
});


共1个答案

匿名用户

您是否可以尝试添加一个检查,以检查此时是否存在X[slideIndex-1]?我想那会解决你的问题。

if (x[slideIndex-1]) { x[slideIndex-1].style.display = "block";}