我有一些项目需要用一些数组更改多个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。
有人可以帮忙吗?感谢
答案 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);
}