如何基于dom名称的一部分循环遍历元素

时间:2011-02-07 17:32:02

标签: javascript jquery prototypejs

我想通过javascript隐藏页面中以_dropMenu结尾的所有元素...所以这就是我所拥有的

window.onload = function() {
  hideNav();
};

    function hideNav(){
      myArray = element("_dropMenu");// this is what need changing 
      for (i=0;i<=5;i++)
      {
         i.style.visibility = 'hidden';
      }
    }

这显然是错误的,但我如何首先获取页面上以_dropMenu结尾的所有元素然后循环遍历它们并将它们设置为隐藏...我更喜欢javascript,因为我只在页面上有原型但是如果我我需要添加jquery ...

2 个答案:

答案 0 :(得分:6)

jQuery有一个选择器,用于查找具有以给定字符串结尾的属性的元素:

$('[id$="_dropMenu]')

如果您可以通过元素类型缩小它(例如,如果您关心的所有元素都是div,或者某些元素),那么这将更快,但将按原样工作。

在幕后,jquery只是循环遍历一组给定的元素,并检查element["id"].substring(element["id"].length-"_dropMenu".length)==="_dropMenu"是否。

答案 1 :(得分:1)

在这种情况下,指出Prototype非常类似于jQuery:

$$('[id$="_dropMenu"]').invoke('hide');

荣誉Jishnu&amp; JacobM首先获取选择器。