0

我正在开发一个 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');

提前致谢!

4

3 回答 3

2

由于 ajax 是异步的,它不会等到元素被追加并执行 makeEditable。由于 ajax 不一定已经完成,因此该元素没有子元素。将 makeEditable 移动到 ajax 调用的成功回调

于 2012-06-18T12:20:02.117 回答
0

ftext是一门课,需要“点”.is(".ftext")

于 2012-06-18T12:21:43.583 回答
0

添加其他警报,例如:

alert($(element).text());

或者

alert($(element).html());

这样您就可以知道您的选择器是否工作正常。

于 2012-06-18T12:28:13.547 回答