8

非表示のスパンの innerHTML を取得しようとしています。JavaScript は iframe HTML ページからのもので、非表示のスパンは親ページにあります。親からリストのコンテンツにアクセスするときに別の関数が機能しますが、スパンに到達できないようです...

作品

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

機能しない

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

上記のコード行は for ループ内に存在し、i を反復処理するときに、それぞれの個別のスパンからデータを取得します。非表示のスパンは、ID「span1」から始まり、10 ~ 40k の異なる非表示のスパンまで続きます。

とにかく、文字列 int i を連結しようとして何かをしなければならないと感じています。とにかく私はintだと思います。何かご意見は?どうもありがとうございました!

編集 - 単語、およびコードの動作しない行に innerHTML 部分を追加しました。それが違いを生むかどうかはわかりません...

Edit2 - 素晴らしい答え、みんな、いくつかの良い構文のトリックを学びました:)私は単に親を移動しました。mplungjan のコメントと Jacob T. Nielson からの回答で推奨されているように、コードの先頭にある部分。何らかの理由で、提案どおりにブラケットを使用してもエラーが発生しますが、将来の同様の状況に備えて、ブラケットを確実に記憶に留めておきます!

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

:)

4

3 に答える 3

6

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

document.getElementById(parent["span"+i]);
于 2013-04-19T14:34:29.200 に答える
6

parent括弧内がオブジェクトで、次のようなものにアクセスしようとしている場合はparent.span1、ドットの代わりに括弧表記を使用する必要があります。

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

于 2013-04-19T14:34:44.233 に答える
5

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

あなたはこのようにすることができます

var s = parent.document.getElementsByTagName('span')[i];
s.innerHTML // <-- access innerHTML
于 2013-04-19T14:49:25.187 に答える