admin管理员组

文章数量:1301595

Here is a very simple question, why get element by tag in javascript doesn't work like get element by id?

Here is my code example:

HTML

<ul>
  <li>list</li>
  <li>list</li>
  <li>list</li>
  <li>list</li>
  <li>list</li>
</ul>

JavaScript

document.getElementsByTagName("li").style.color="red";

Here is a very simple question, why get element by tag in javascript doesn't work like get element by id?

Here is my code example:

http://codepen.io/vincentccw/pen/KvAfF

HTML

<ul>
  <li>list</li>
  <li>list</li>
  <li>list</li>
  <li>list</li>
  <li>list</li>
</ul>

JavaScript

document.getElementsByTagName("li").style.color="red";
Share edited Feb 4, 2014 at 15:56 display-name-is-missing 4,4095 gold badges30 silver badges42 bronze badges asked Feb 4, 2014 at 15:43 Vincent ChuaVincent Chua 1,0076 gold badges21 silver badges41 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 8

getElementsByTagName returns a collection of elements called HTMLCollection. Try the following:

var elem = document.getElementsByTagName("li");
for (var i = 0; i < elem.length; i++) {
    elem[i].style.color="red";
}

getElementsByTagName() returns a collection of elements (in a HTMLCollection). To work on each element in this array, you can loop through the items.

whereas

getElementById() returns one DOMElement - which has style and other attributes.

本文标签: javascriptGet element by tag not workingStack Overflow