4

生成した HTML を選択してから変更する方法を見つけようとしていますiframe。iframe には、さまざまなメディア (画像、PDF など) が表示されます。さまざまなアイテムを表示するために、最初に次のようなものを使用して作成します。

$('#mydiv').html("<iframe id='myiframe' src='path/file.jpg'></iframe>");

次に、必要に応じて、次のようなものを使用して内容を更新します。

$('#myiframe').attr("src","path/newfile.jpg");

これにより、次のような HTML が生成されます (Chrome の要素ビューアーで確認できます)。

<div id='mydiv'>
  <iframe id='myiframe' src='path/file.jpg'>
    #document
      <html>
        <body style="margin:0">
          <img style="-webkit-user-select:none" src="path/file.jpg">
        </body>
      </html>
  </iframe>
</div>

<img>幅を調整できるように、動的に生成されたタグを選択したいと考えています。しかし、それを行うためのjqueryセレクターがわかりません。アイデア?

4

3 に答える 3

13

jQuerysコンテンツメソッドを使用します。ドキュメントには、「iframe内のリンクの背景色を変更する」というタイトルの例もあります。

テキストノードやコメントノードなど、一致した要素のセット内の各要素の子を取得します。

コードに適用:

var images = $('#myiframe').contents().find('img');

本当の問題は、そもそもなぜiframeが必要なのかということです。

于 2012-05-21T20:01:19.607 に答える
4

最初にiFrameのコンテンツを取得する必要があります:

$("#myiframe").contents().find('img');
于 2012-05-21T20:01:41.277 に答える
0

コンテナー内の画像を動的に変更するだけであれば、iframe は必要ありません。

src 属性を更新できる独自の html に img タグが必要です。

$('#my-image')
    .attr('src', '/path/to/image')
    .attr('width', '100px')
    .attr('height', '100px');

画像のためだけに iframe を生成する正当な理由がない限り。そのような iframe で遊ぶことは、他のドメインから URL を呼び出すときに特に苦痛になる可能性があります

于 2012-05-21T19:59:11.900 に答える