我有以下列表层次结构:访问元素
<ul id="ulid">
<li><a><div class="mydiv">content</div></a></li>
<li><a><div class="mydiv">content</div></a></li>
...
</ul>
我想一些CSS规则添加到div,这是我试过到目前为止:
var myul = document.getElementById("ulid");
var myli = myul.getElementsByTagName("li");
for(var i = 0; i < myli.length; i++) {
//myli[i].parentNode.style.display = "none"; // that works
var links = myli[i].getElementsByTagName("a");
for(var ii = 0; ii < links.length; ii++) {
links[ii].parentNode.style.display = "none"; // doesnt work
}
}
我可以隐藏li
项目,但不能做同样的a
所以我不能达到div。我在这里做错了什么?
编辑:getElementsByClassName
似乎不适用于greasemonkey脚本,因为它只是在Emmanuel N的小提琴中工作。
那么:var divs = document.getElementsByClassName(“mydiv”)'? – VisioN 2013-03-15 14:28:38
值得注意的是'a'标签内的div标签是无效的标记。如果你正在寻找一个通用的内联容器用户'span'。 – graphicdivine 2013-03-15 14:29:19
为什么你总是使用'parentNode'?只是在执行'myul.getElementsByTagName(“div”)'(或''a“',不确定你真正想要的是什么)时会出错? – Bergi 2013-03-15 14:33:55