[英]How to select nested UL element without class in JavaScript
在我的Joomla模板中,我创建了一个垂直菜单,其中包括一个下拉菜单,当打开子菜单onclick时,该菜单应“推”下面的元素。 我不知何故不起作用。
我试图在LI内获取UL,但是如果没有UL的类或ID,我该如何用JavaScript进行操作。
我来过这个:
function getElements(){
var listitems = {};
for(var i = 0; i< arguments.length; i++){
var id = arguments[i];
var item = navigation.getElementsByTagName("li");
if (item == null)
throw new Error ("No list items found.");
listitems[id] = item;
}
return listitems;
}
现在我应该得到类似的信息:(我现在下面的代码是不可能的,但是它描述了我正在尝试的内容)
var nav = document.getElementById("navigation");
var nestedList = nav ul li ul;
nestedList.onclick(nav ul li ul.style = "display: block";);
HTML看起来像:
<div id="navigation">
<ul>
<li class="parent">
<ul><li></li></ul>
</li>
</ul>
</div>
CSS看起来像:
#navigation ul li ul{display: none;}
现在我希望它显示:单击.parent时阻止
谢谢!
由于您的页面中已经包含MooTools,因此应该可以执行以下操作(此处不是MooTools专家):
$('#navigation li.parent').addEvent('click', function () {
$('#navigation li.parent ul li ul').setStyle('display', 'block');
});
纯JS(这不是完整的代码,您必须多次遍历元素才能添加点击侦听器并应用样式):
var listItems = document.querySelectorAll("nav ul li ul"); var count = listItems.length; for (var i=0; i<count; i++) { var item = listItems.get(i); item.style.display = "block"; }
当然,最简单的方法是使用jQuery或其他一些库。 要针对现代浏览器使用纯JavaScript做到这一点,请使用JS querySelector 。 否则,您将在此花费很多时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.