2016-03-22 16 views
-2

とのトラブル、私は言葉のインデックスに続いて、 "すごい、ヘクタール" それは返すために取得しようとしていますを有する "素晴らしい":</p> <p>HTML getElementsByTagNameの(BLOCKQUOTE)

<blockquote id = "blocky"> 

ha, awesome<br> 

</blockquote> 

JS:

var x = document.getElementsByTagName(blockquote).innerHTML ; 
var n = x.indexOf("awesome"); 
document.getElementsByTagName(blockquote).innerHTML = x + "<br>" + n; 

私はこれにJSを変更すると、それは

var x = document.getElementById("blocky").innerHTML ; 
var n = x.indexOf("awesome"); 
document.getElementById("blocky").innerHTML = x + "<br>" + n; 
の作品

https://jsfiddle.net/mzrt/zaf98g8y/1/

+4

下品なID名の理由は何ですか? –

+0

夏、素敵な編集!私のdownvoteは未熟さです。 –

+0

私はイライラしていたので、私の謝罪 – mzrt

答えて

5

基本的にgetElementsByTagNamenode listを返します、オブジェクトのような配列は、あなたが直接それからnodeのプロパティにアクセスすることはできません、あなたはそれから最初のノードを取得し、その後、あなたはそれを扱うことができブラケット表記を使用する必要がありますノードオブジェクトとして、

var x = document.getElementsByTagName('blockquote')[0].innerHTML; 

あなたがターゲットとしている要素は、idを持つ要素であるので、getElementByIdで行く方が良いです。

5

まず、変数ではなく文字列を渡す必要があります(変数に文字列が含まれていない限り)。

var x = document.getElementsByTagName('blockquote'); 

次に、document.getElementsByTagName要素のコレクションではなく、単一の要素を返します。 [0]を使用して最初の結果を得ることができます。

var x = document.getElementsByTagName('blockquote')[0]; 

それともfor loopを使用してすべての要素を反復処理することができます。

for (var i = 0; i < x.length; i++) { 
    var element = x[i]; 
    element.innerHTML = '...'; 
} 
2
var x = document.getElementsByTagName('blockquote')[0].innerHTML ; 
var n = x.indexOf("awesome"); 
document.getElementsByTagName('blockquote')[0].innerHTML = x + "<br>" + n; 

タグ名で要素を取得し、あなたがしたいんwhitchノードを伝えるために持っているので、ノードのリストを返します。 また、単一引用符の間にタグ名を渡す必要があります。

関連する問題