2016-05-15 80 views
-5

的document.getElementById并使用我有以下的HTML代码ID名称

<section id="main-content"> 
    <header> 
     <h1 id="page-title">Why Are There No Arab Democracies?</h1> 
    </header> 

要检索page-title内容,我试着使用,其中包括以下内容:

document.getElementById("page-title")[0].InnerText

document.getElementsByTagName("h1")[0].getElementById("page-title")[0].InnerText

每次我得到一个错误。

+2

')[0] .InnerText'到').InnerText' .... 'getElementById'不返回任何集合的元素。 –

+1

检查错误文本并进行网络搜索可以帮助您解决问题。 –

+2

应该是'innerText'而不是'InnerText'。 [caniuse](http://caniuse.com/#feat=innertext) –

回答

1

[0]当你抓住&要选择第一多个元素使用元素从列表中。例如:如果您的页面有多个<p>,并且您做了getElementByTagName('p'),那么您需要使用[0]来访问所有捕获元素列表中的第一个元素。

<p>Hello</p><p>hi</p> 

然后

alert(document.getElementsByTagName("P")[0].innerHTML); ## this alerts "Hello" 

回答你的问题:

alert(document.getElementById('page-title').innerHTML);
<section id="main-content"> 
 

 
    <header> 
 
    <h1 id="page-title">Why Are There No Arab Democracies?</h1> 
 

 
    </header> 
 
</section>

+0

感谢您的支持。因为它是最详细的,所以我将它标记为可接受的答案。 – menteith

+0

很高兴知道它有帮助。 –

+0

@menteith你应该点击勾选[接受答案](http://stackoverflow.com/help/someone-answers)。 –

1

使用document.getElementById();这样代替。您还应该使用.textContent来查找元素的文本。

当按id查找元素时,您不必使用[0]的原因是因为getElementById只返回一个元素,因为HTML中只有一个元素具有指定的id。

alert(document.getElementById("page-title").textContent);
<section id="main-content"> 
 
    <header> 
 
    <h1 id="page-title">Why Are There No Arab Democracies?</h1> 
 
    </header> 
 
</section>

0
document.getElementById("page-title").innerText 

你只抓住一个元素,因此没有必要为[0]