我在我的机器上运行IE 11。我有一个使用getElementsByClassName的网页。当我访问我的机器上的网页时,页面被提供并且工作正常(它执行getElementsByClassName)。如果我也使用IE访问不同机器上的同一网页,则无法找到getElementsByClassName方法。如果我将在故障机器上提供的代码保存到浏览器并访问它,则保存的页面工作正常(它执行elemmentsByClassName工作)。到底是怎么回事?如何告诉浏览器使用具有getElementsByClassName的DOM版本或javascript?
var list = document.getElementsByClassName("mrClickableRow");
答案 0 :(得分:2)
确保IE使用正确的文档模式呈现您的页面,如果没有,它可以模拟旧的DOM-API,这可能会导致一些问题。
通过在IE中点击F12或通过设置菜单选择它来打开您的开发者工具。然后转到Emulation-tab并查看Document Mode-downdown。
答案 1 :(得分:0)
document.getElementsByClassName
,您确定将JS与<script type="text/javascript">
集成在一起吗?
P.S。在<script>
(正文结束标记)
</body>
答案 2 :(得分:0)
有关兼容性问题,您可以使用此功能。
mat = np.array(
[[0]*3]*3,
dtype=[('MSFT','float'),('CSCO','float'),('GOOG','float')]
)
但请注意,此函数与内置函数略有不同:使用内置window.getElementsByClassName = function(node, classname) {
var a = [];
var re = new RegExp('(^| )' + classname + '( |$)');
var els = node.getElementsByTagName("*");
for (var i = 0, j = els.length; i < j; i++)
if (re.test(els[i].className)) a.push(els[i]);
return a;
}
if (!document.getElementsByClassName) {
document.getElementsByClassName = function(className) {
return window.getElementsByClassName(document.body.parentNode, className);
};
}
函数时,它会返回document.getElementsByClassName
。如果然后删除HTMLCollection中包含的元素的类,它也会从HTMLCollection中删除。