下午好,
让我首先说,我看到很多关于这个主题的帖子,并且包含/尝试了很多这些帖子来解决我的问题。
现在问题是,我试图找出与可用的几个浏览器的兼容性模式。 我和Iexplorer挣扎,差不多每个版本..
我尝试的所有内容,在几种脚本上都不能在浏览器中工作,而在其他所有脚本中都可以。
我遇到的主要问题是getElemtsByClassName。 例如:
var tag = window.document.getElementsByClassName("kat");
它总是在这里返回: Object不支持属性或方法'getElementsByClassName'。
我在网上看到过这个问题,也在这里,是否有人有一些关于绕过这个问题的信息? 尝试了一些东西,喜欢把它改成:
var tag = window.getElementsByClassName("kat");
或
var tag = getElementsByClassName("kat");
但是,我猜我在错误的方向思考.. 有人可以给我一个提示或链接来阅读如何解决这样的问题吗?
这是我通常使用的标题,我读过这应该可以解决很多问题:
<!doctype html>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
作为我的一个例子:
function insDiv() {
var tag = window.document.getElementsByClassName("kat"), total = 0;
for (var i in tag)
{
total += tag[i].checked && !isNaN(Number(tag[i].value)) ? Number(tag[i].value) : 0;
}
window.document.getElementById("insDiv").innerHTML = 'Kat: ' + total.toFixed(2);
}
在chrome / firefox /等中完美运行。只是不在Iexplorer。
答案 0 :(得分:6)
我会忘记.getElementsByClassName()
并坚持使用.querySelectorAll()
,它与jQuery选择器非常相似。在IE8中使用CSS2选择器完美地工作:
var elements = document.querySelectorAll('.myClass');
您也可以从中创建自己的可重用选择器:
var $$ = function (selector) {
return document.querySelectorAll(selector);
};
// usage
$$('#id');
$$('.className');
$$('[attributes]');