在Internet Explorer上运行js的问题

时间:2016-11-29 12:38:19

标签: javascript internet-explorer

我有这个代码,即有问题。

var myIndex = 0;
carousel();

function carousel() {
var i;
 var x = document.getElementsByClassName("mySlides");
for (i = 0; i < x.length; i++) {
   x[i].style.display = "none";
}
myIndex++;
if (myIndex > x.length) {myIndex = 1}
x[myIndex-1].style.display = "block";
setTimeout(carousel, 3000); // Change image every 2 seconds
}

开发人员工具说明以下问题就在于此。它不会在我的网站上运行任何JS!所以我想这是因为这个问题。我知道这可能是非常基本的东西......不幸的是我不懂JS:(

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

错误是

对象不支持此属性或方法

作为Js的业余爱好者,我很高兴我的网站在Chrome和Firefox上创造奇迹 - 直到我的幸福一如既往地崩溃...

如果有人可以帮助阐明这一点,那将是非常有必要的。

顺便说一句,我的Doctype被声明为

<!DOCTYPE html>
<html>

如果必须对它做任何事情。

提前感谢您提供任何帮助

我正在开发的网站http://www.mylaundrywala.com ...正如我所提到的,在Chrome和Firefox上正常运行。

2 个答案:

答案 0 :(得分:1)

这取决于您正在测试代码的Internet Explorer。如您所见,IE9及更高版本支持该方法。 Document.getElementsByClassName() on MDN

Document.getElementsByClassName

有人还提出了一个解决方法:getElementsByClassName() doesn't work in old Internet Explorers like IE6, IE7, IE8

答案 1 :(得分:1)

旧IE不支持getByClassName。

您可以使用以下代码作为此

的周转时间

function getElementsByClassName(className) { var found = []; var elements = document.getElementsByTagName("*"); for (var i = 0; i < elements.length; i++) { var names = elements[i].className.split(' '); for (var j = 0; j < names.length; j++) { if (names[j] == className) found.push(elements[i]); } } return found; }