2012-02-05 170 views
7

我有几个dinamically创建的div,里面相同的元素:访问元素

<div id="(dinamic_id_1)"> 
    <div class="(element_1)">Some text here</div> 
    <input class="(element_2)" /> 
    <iframe class="(element_3)" src="form.php?id=(dinamic_id_1)" /> 
</div> 

<div id="(dinamic_id_2)"> 
    <div class="(element_1)">Some text here</div> 
    <input class="(element_2)" /> 
    <iframe class="(element_3)" src="form.php?id=(dinamic_id_2)" /> 
</div> 

... 

而且还有的iframe中的形式,会是这个样子:

<form id="(dinamic_id)" > 
    <input class="(class_input)" /> 
</form> 

我的jQuery函数:

$(".class_input").change(function() { 
    $(this).closest("form").submit(); 
}); 

有,我想EXECUT其他行动e在父窗口上提交div中包含的与表单共享相同id的元素。我得这样父DIV中的HTML:

var parent_div = $("div#"+$(this).closest("form").attr("id"), parent.document); 
alert($(parent_div).html()); 

但我不能到div内的元素,例如:

var parent_div = $("div#"+$(this).closest("form").attr("id"), parent.document); 
alert($(parent_div+" .element_1").html()); 

var parent_div = $("div#"+$(this).closest("form").attr("id")+" .element_1", parent.document); 
alert($(parent_div).html()); 

返回null而不是“这里有一些文字”。

+0

您调试器给出了错误消息吗?你螨没有这个权利。 – jerone 2012-02-05 14:36:15

回答

2

尝试代码修改为以下内容:

var parent_div = $("div#"+$(this).closest("form").attr("id"), parent.document); 
alert(parent_div.children('.element_1').text()); 

我敲了一个快速测试我的结束,所有工作得很好。

编辑:解释

的问题是,你试图引用parent_div作为一个字符串,而实际上它是它自己的一个jQuery对象。

alert($(parent_div + " .element_1").html()); 
//  ([object] + [string] ) 
+0

愚蠢的我,就是这样,谢谢! – Sandra 2012-02-05 15:50:24