JavaScript innerHTML未定义

时间:2016-02-20 22:42:32

标签: javascript innerhtml

为什么.innerHTML显示未定义,但.length显示为1.

HTML:

<html>
    <head>
    </head>

    <body>
        <h1>Hello World</h1>
        <ul>
            <li>This is an item</li>
            <li>This is another item</li>
        </ul>

        <script src="test.js"></script>

   </body>

   </html>

javascipt的:

var content = document.getElementsByTagName("h1");
console.log(content.innerHTML);
console.log(content.length);

3 个答案:

答案 0 :(得分:2)

来自MDN

  

Element.getElementsByTagName()方法返回具有给定标记名称的元素的实时HTMLCollection。

使用[0]获取第一项:

console.log(content[0].innerHTML);

答案 1 :(得分:1)

JavaScript的document.getElementsByTagName返回一个(类似数组的)对象。您可以使用content[0]获得所需的一个元素:

//returns a collection of elements
var content = document.getElementsByTagName("h1");

// single out the element you need
var tag = content[0];
console.log(typeof(content));
console.log(content.length);

//get the element's inner HTML
console.log(tag.innerHTML);
<h1>Hello World</h1>
<ul>
  <li>This is an item</li>
  <li>This is another item</li>
</ul>

答案 2 :(得分:0)

如果需要专门定位此元素,请为其指定id属性,然后使用getElementById。这样效率更高,并且只返回一个元素。