我正在开发一个 jQuery,它从服务器获取元素列表,将其附加到元素,然后循环新附加的元素以转换它们(使它们可编辑)。
我在循环方面遇到问题。附加工作正常,所以我有一个元素列表,例如:
<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');
提前致谢!
最佳答案
由于ajax是异步的,它不会等到元素被追加后才执行makeEditable。由于 ajax 可能不一定已完成,因此该元素没有子元素。将 makeEditable 移至 ajax 调用的成功回调
关于javascript - jQuery:子项计数 = 0 和 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082538/