2016-05-15 81 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]