Javascript 父元素和父元素在Internet Explorer中不工作
我遇到了IE11的兼容性问题。具体来说,Javascript 父元素和父元素在Internet Explorer中不工作,javascript,Javascript,我遇到了IE11的兼容性问题。具体来说,var opensubs=parent.parentElement.querySelectorAll(':scope.open')抛出一个错误。我认为这是parent.parentElement造成的,但我很难在网上找到资源。是否有一个替代的代码,以便它将在IE中工作 下面是完整的脚本。它在IE中的其他浏览器中运行良好 <!DOCTYPE html> <html> <head> </head> <bo
var opensubs=parent.parentElement.querySelectorAll(':scope.open')代码>抛出一个错误。我认为这是parent.parentElement
造成的,但我很难在网上找到资源。是否有一个替代的代码,以便它将在IE中工作
下面是完整的脚本。它在IE中的其他浏览器中运行良好
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<ul class="tree">
<li class="myCSS"><a class="tablinks">Parent 1</a>
<ul></ul>
</li>
<li class="myCSS"><a class="tablinks">Parent 2</a>
<ul></ul>
</li>
<li class="myCSS"><a class="tablinks">Parent 3 expander</a>
<ul>
<li class="myCSS">Child</li>
<li class="myCSS">Child</li>
<li class="myCSS">Child</li>
</ul>
</li>
</ul>
</body>
<script type="text/javascript" >
var tree = document.querySelectorAll('ul.tree a:not(:last-child)');
for(var i = 0; i < tree.length; i++){
tree[i].addEventListener('click', function(e) {
var parent = e.target.parentElement;
var classList = parent.classList;
var closeAllOpenSiblings = function(){
var opensubs = parent.parentElement.querySelectorAll(':scope .open');
for(var i = 0; i < opensubs.length; i++){
opensubs[i].classList.remove('open');
}
}
if(classList.contains("open")) {
classList.remove('open');
} else {
closeAllOpenSiblings();
classList.add('open');
}
});
}
</script>
<style>
ul.tree li {
list-style-type: none;
position: relative;
}
ul.tree li ul {
display: none;
}
ul.tree li.open > ul {
display: block;
}
</style>
</html>
父级1
父级2
父级3扩展器
孩子
孩子
孩子
var tree=document.queryselectoral('ul.tree a:not(:last child)');
对于(var i=0;iul{
显示:块;
}
parentElement和querySelectorAll应在IE 9+中工作,classList应在10+中工作。你正在使用什么版本的IE?请发布错误文本。我正在使用IE 11。并且没有错误消息。根据调试模式,这是一个语法错误。您发布的代码中没有语法错误。请再次发布错误文本。我无法复制。SCRIPT5022:SyntaxError
是我看到的。我想说代码是用于展开和折叠的菜单树是有帮助的。它在除IE11之外的其他浏览器中展开/折叠。