代码之家  ›  专栏  ›  技术社区  ›  Giffyguy

如何从JavaScript中选择HTML元素而不知道其ID?

  •  3
  • Giffyguy  · 技术社区  · 13 年前

    我有一个未知的号码 <img> 我的页面上没有id的元素,我需要能够浏览它们并基于一些不可预测的因素设置某些属性。

    8 回复  |  直到 13 年前
        1
  •  4
  •   Alex    13 年前

    使用 document.getElementsByTagName() :

    var imgs = document.getElementsByTagName("img");
    
    for(var i = 0; i < imgs.length; i++) {
       var currentImg = imgs[i];
       if (currentImg.somAttr) {
           // do your stuff
       }
    }
    
        2
  •  6
  •   Blender    13 年前

    你会用 this function 要以数组的形式浏览它们:

    document.getElementsByTagName('img');
    

    这是一系列 img 元素,您可以将其视为使用 getElementById() 函数(即,您仍然可以对元素执行相同的操作,但需要引用元素):

    document.getElementsByTagName('img')[0]
    

    如果你说的因素真的很复杂,我会用 jQuery (它真的很强大):

    $('img[alt]').css('padding', '10px');
    

    这会增加 10px 使用 alt 属性(我希望如此,因为我发布了几乎可以工作的代码而臭名昭著)。

    祝你好运!

        3
  •  6
  •   Josh Stodola    13 年前

    大家都忘了 document.images ...

    for(var i = 0; i < document.images.length; i++) {
      var img = document.images[i];
    
      if(img.src == "banner.gif") {
         img.alt = "Banner";
      }
      else if(img.alt == "Giraffe") {
         img.title = "15 feet tall!";
      }
    }
    

    如果需要在另一个元素中获取图像,可以使用 getElementsByTagName ...

    var elem = document.getElementById('foo');
    var fooImages = elem.getElementsByTagName('img');
    
        4
  •  2
  •   david    13 年前

    您可以使用getElementsByTagName获取img标记的列表:

    https://developer.mozilla.org/en/DOM/element.getElementsByTagName

        5
  •  1
  •   Pankaj Agarwal    13 年前

    您可以为图像标记设置名称属性,并可以使用document.getElementsByName执行任何操作。

    例如

    <script type="text/javascript">
    function getElements()
      {
      var x=document.getElementsByName("x");
      alert(x.length);
      }
    </script>
    
    <input name="x" type="text" size="20" /><br />
    <input name="x" type="text" size="20" />
    
        6
  •  0
  •   Steve    13 年前

    使用jQuery和search by element type$(“img”).each()对每个元素执行am操作

        7
  •  0
  •   jon_darkstar    13 年前

    jQuery可能是你最好的选择。否则,必须遍历dom树并手动检查属性。使用jQuery之后,您可以根据诸如名称、类、标记名(输入、图像等)和它们的组合等属性来选择元素。

    $("image .className").attr(....
    

    http://www.jquery.com

        8
  •  -1
  •   ddrace ExiRe    13 年前

    在不知道更多细节的情况下很难回答这个问题,但是您考虑过使用Jquery吗?