jQuery - 改变子iframe不是整页?

时间:2014-03-24 06:27:57

标签: jquery modal-dialog find createelement

我正在尝试获取子iframe并在我的div中设置它的源名为“myLittleModal”

function createModalElement( modalClassName ) {
return $('body').append("<div class=\""+ modalClassName + "\"><iframe></iframe></div>");
}


var modalElement = createModalElement( "myLittleModal" );
//alert(modalElement.text());           
modalElement.find('iframe').attr('src', "modal.html");

但它实际上不仅改变了iframe的来源,而且还改变了另一个iframe的来源,这根本不是这个特定元素的孩子。 ???为什么!?

我认为modalElement将是我创建的特定元素的句柄,通过它我可以操纵它的特定子iframe(不需要类,因为它是我可以设置类的子类)。

在Chrome中查看源代码控制台后,我发现它还在更改页面上另一个iframe的源代码,现在用于测试目的,加载实时页面。 WHY ???

如果我也使用儿童(“iframe”)功能,也会发生这种情况。

请帮忙

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容替换createModalElement功能:

function createModalElement( modalClassName ) {
    $('body').append("<div class=\""+ modalClassName + "\"></div>");
    return $('.' + modalClassName).append("<iframe></iframe>");
}

我所做的是分割追加行动,只有return - 第二个。

您的原始iframe(在js调用之前存在的那个)很可能被这个新函数调用的div所包围,因为您使用了append body 。在我修改后的代码中,我将iframe附加到已创建的div,因此当您应用属性时,它将仅应用于该属性。再说一遍,我不是百分之百确定这是答案,但我确实可以使用我的代码。

<强> Here is a demo you can fiddle with.