2016-05-15 4 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

')へ').InnerText' [0] .InnerText' .... 'getElementById'は、コレクションではなく要素を返します。 –

+1

エラーのテキストを調べて、ウェブ検索を実行すると、問題の解決に役立ちます。 –

+2

'InnerText'ではなく' innerText'でなければなりません。 [caniuse](http://caniuse.com/#feat=innertext) –

答えて

1

[0]の必要が使用されていない、一つの要素をつかみました要素をリストから削除します。

例:ページに複数の<p>があり、getElementByTagName('p')の場合は、取り込まれたすべての要素のリストの最初の要素にアクセスするために[0]を使用する必要があります。その後、

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

回答あなたの質問に

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

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を持つ要素が1つのみ存在する必要があるため、要素1つを返すためです。

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]

関連する問題