0

サーバーから要素のリストを取得し、それを要素に追加し、新しく追加された要素をループしてそれらを変換する(jEditableにする)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 に答える