2013-04-19 8 views
5

隠しスパンのinnerHTMLを取得しようとしています。 JavaScriptはiframeのHTMLページからのもので、非表示のスパンは親ページのものです。親からリストの内容にアクセスするときに別の機能は動作しますが、私は私のスパンで取得するように見えることはできません...JavaScriptエラー、後に名前が見つかりません。演算子

document.getElementById(parent."span"+i).innerHTML; 
- SyntaxError: missing name after . operator 

document.getElementById(parent.genL[i]); 

doesntの仕事をWORKS上記のコード行はforループ内にあり、iを反復するにつれて、それぞれの別々のスパンからデータを取得します。隠されたスパンは、ID「span1」から、10-40kの異なる隠れたスパンから始まります。

とにかく、私は文字列int iを連結しようとすると何かをしなければならないと感じています。私は私がとにかくintであると仮定します。何かご意見は?皆さんありがとう!

編集 - 単語をinnerHTML部分に追加すると、コード行が機能しません。それが違いを生み出すかどうかは分かりません。

Edit2 - すばらしい答えです。私は単純に親を動かしました。 mplungjanのコメントとJacob T. Nielsonの答えによって、コードの前部に分かります。何らかの理由で、私はまだ提案されたように括弧を使ってエラーが出ましたが、私は間違いなく、将来の同様の状況のた​​めに私の記憶に括弧を入れます!

parent.document.getElementById("span"+i).innerHTML; 

:)

答えて

5

あなたがしようとしていることは、親ページのi番目のスパン要素を取得することだと思います。正しい?

あなたは彼らが両方の "インデックス" です。この

var s = parent.document.getElementsByTagName('span')[i]; 
s.innerHTML // <-- access innerHTML 
6

インデクサにそれを変更してみてください。

document.getElementById(parent["span"+i]); 
+1

のようにそれを行うことができます。用語の違いは、「ドット表記」(OPが試しているもの)と「ブラケット表記」(あなたが持っているもの) – Ian

+3

またはparent.document.getElementById( "span" + i);です。 – mplungjan

6

括弧内parentがオブジェクトであり、あなたがparent.span1ような何かにアクセスしようとしているなら、あなたはブラケット記法の代わりにドットを使用する必要があります。

document.getElementById(parent["span"+i]);は正常に動作するはずです。

関連する問題