更改多个iframe的内容

时间:2017-05-15 10:09:41

标签: javascript jquery html iframe

我有一些项目需要用一些数组更改多个iframe 示例

<ul>
  <li>
    <iframe src="test.html">
      <head></head>
      <body>
        <div class="content">
          <p>test</p>
        </div>
      </body>
    </iframe>
  </li>
  <li>
    <iframe src="test.html">
      <head></head>
      <body>
        <div class="content">
          <p>test</p>
        </div>
      </body>
    </iframe>
  </li>
</ul>

我需要使用数组<div class="content"><p>test</p></div>为每个iframe更改["<h1>tittle</h1>","<h1>tittle2</h1>"]

对于第一个iframe,它将替换为array[0]中的HTML和带有array[1]的第二个iframe。

有人可以帮忙吗?感谢

4 个答案:

答案 0 :(得分:1)

尝试使用replaceWith()

var array = ["<h1>tittle</h1>", "<h1>tittle2</h1>"]

$(document).ready(function() {
  $('iframe').load(function() {
    $('iframe').each(function(a) {
      $(this).contents().find('body').children('.content').replaceWith(array[a]);
    })
  })

})

答案 1 :(得分:0)

你走了:

var arr = ["<h1>tittle</h1>","<h1>tittle2</h1>"];
var found=0;
$('iframe').each(function(){
  if($(this).find('.content p').length > 0){
    $(this).find('.content p').parent().replaceWith(arr[found]);
    found++;
  }
});

它会搜索每个iframe,然后检查它是否包含您想要的标记,然后将其替换为您的数组替换。

变量'found'允许您浏览阵列。

答案 2 :(得分:0)

就像用“jQuery”标记你的帖子一样,我想你可以使用这个库。 所以你只需要迭代.each()函数。

var array = ["<h1>tittle</h1>","<h1>tittle2</h1>"];
$(".content").each(function(i) {
    $(this).html(array[i]);
});

如果您确实要删除html(),则显然可以将replaceWith()替换为div

答案 3 :(得分:0)

你可以试试这个:

var iframe = $('iframe');
for (i=0; i<iframe.length; i++){
 var current = $('iframe')[i+1].contentWindow.document.body.innerHTML;
 $('iframe')[i].contents().find('html').html(current); 
}