我已将 Prototype 库添加到我的网站,然后添加以下代码。当我打开页面时,我希望隐藏ul中的所有内容。
Event.observe(window, 'load', function() {
$$('.block-category li.parent ul').hide() //why this line doesn't work
$$('.block-category li.parent > a span').each(function (element) {
element.observe('click', function (e) {
e.element().up().next('ul').toggle();
e.preventDefault();
});
});
});
HTML:
<div class="block block-category">
<li class="level-top parent">
<a href="example.com/...."><span>text one</span></a>
<ul> //the 1 ul
<li><a><span>....</span></a></li>
<li><a><span>....</span></a></li>
<li><a><span>....</span></a></li>
<li><a><span>....</span></a></li>
</ul>
</li>
<li class="level-top"><a href="..."><span>....</span></a></li>
<li class="level-top parent">
<a href="example.com/...."><span>text two</span></a>
<ul> //the 2 ul
<li><a><span>....</span></a></li>
</ul>
</li>
<li class="level-top parent">
<a href="example.com/...."><span>text three</span></a>
<ul>
<li><a><span>....</span></a></li>
<li><a><span>....</span></a></li>
</ul>
</li>
</div>
谢谢。
答案 0 :(得分:0)
试试这个,隐藏的接缝不能直接应用于一组元素:
$$('.block-category li.parent ul').each(function(elm) {
elm.hide();
});
答案 1 :(得分:0)
$$()
方法返回与该CSS选择器匹配的元素列表 - 如果要迭代它们并运行相同的方法,请使用invoke()
方法
$$('.block-category li.parent ul').invoke('hide');
$$('.block-category li.parent ul').invoke('observe','click',function(){
alert('element was clicked');
});
如果您需要做的不仅仅是运行单个方法,请使用each()
方法
$$('.block-category li.parent ul').each(function(item){
item.hide();
//item.update('new content');
//etc
});