Javascript getElementsByTagName

时间:2009-11-03 11:55:29

标签: javascript

我正在尝试使用getElementsByTagName(“a”)方法获取特定标记下的所有元素。

但是,我不想要每个锚标签。我如何缩小它以便我只选择“someListClass”名称的ul标签下的所有锚标签?

<ul class="someListClass"> <li><a href... /></li>... </ul>

我知道在jQuery中你可以选择$(“。someListClass a”)。

我如何使用jQuery 没有

4 个答案:

答案 0 :(得分:12)

给你的ul一个id,然后使用

<ul id="ulid" class="someListClass"> <li><a href... /></li>... </ul>

document.getElementById ( "ulid" ).getElementsByTagName ( "a" );

element.getElementsByTagName

elements = element.getElementsByTagName(tagName); 
  

元素是找到的实时NodeList   元素按它们出现的顺序排列   子树。

     

元素是来自哪里的元素   搜索应该开始。请注意   这个元素的后代是   包含在搜索中,但不是   元素本身。

     

tagName 是要查看的限定名称   对于。特殊字符串“*”表示   所有元素。为了兼容性   应该使用XHTML,小写。

答案 1 :(得分:2)

你可以使用

element.getElementsByTagName(tagName) 

其中element是UL项目...所以抓住UL项目然后搜索它。类似的东西:

<ul class="someListClass" id="myList"> <li><a href... /></li>... </ul>

var theList = document.getElementById('myList');
var listItems = theList.getElementsByTagName('li');

答案 2 :(得分:1)

你想要getElementsByClassName http://www.quirksmode.org/blog/archives/2008/05/getelementsbycl.html

  links = document.getElementsByClassName("someListClass")[0].getElementsByTagName("a")

答案 3 :(得分:0)

如果没有框架,除了手动遍历每个元素并迭代其父级之外,我无法想到其他方式。如果其中一个具有类“somelistClass”,则将其添加到堆栈中。否则,不是。

如果你正在寻找单个元素的孩子,那么凤凰的方法就是你的选择。