我正在研究一个从服务器获取元素列表的jQuery,将它附加到一个元素,然后在新附加的元素中循环以转换它们(使它们成为jEditable)。
我遇到循环问题。附加工作正常,所以我有一个元素列表,如:
<div id="innerModal">
<label id="exampleTitle">Title :</label>
<label id="exampleField" class="ftext">Value</label>
</div>
然后我尝试循环:
function makeListEditable(element, type){
//I checked here that the element sent is well '#innerModal'
alert($(element).children().length);
$(element).children().each(function() {
if( $( this ).is( 'ftext' ) ){
makeEditable( $( this ), type, '', '' );
}
});
}
警告打印“0”。
这个问题来自哪里?我该如何解决?
编辑:这是makeListEditable的调用:
getFormOnElement(//Gets the form and appends it
"getorganisationeditable/"+curOId,
"#innerModal"
);
makeListEditable('#innerModal');
提前致谢!
答案 0 :(得分:2)
由于ajax是异步的,因此它不会等到元素被追加并执行makeEditable。由于ajax可能未必完成,因此该元素没有子元素。将makeEditable移动到ajax调用的成功回调
答案 1 :(得分:0)
ftext
是一个类,需要'dot'.is(".ftext")
答案 2 :(得分:0)
添加其他类似的内容:
alert($(element).text());
或
alert($(element).html());
所以你可以知道你的选择器是否正常工作。