1

そのため、ページに Jquery.live() で追加されている要素を新しく追加しました。これらの要素が追加された後、それらの値を変更したいと思います。

だから何か

   $("#questionForm").empty();
        $.get("questionCreator.html", function(data){
            $("#questionForm").append(data);

        });
        var index=$(this).parent().index();
        id = index; 
        var associatedQuestion = idQuestionAssociation[index];
        var associatedResponses = idResponsesAssociation[index];
        if(associatedQuestion != null){
            $(".questionInput").val(associatedQuestion);
        }

したがって、.val() 呼び出しは、最初は .questionInput 要素がなく、これが追加されているため、機能していないと思います。.live、.delegate、または .on を使用する必要があるように感じますが、どのイベントを使用すればよいかわかりません。

誰でも助けることができますか?

4

2 に答える 2

0

$.get非同期です。これは、一致させようとしている要素が$(".questionInput")まだ DOM にないことを意味します。残りの DOM 操作は、コールバック内に配置する必要があります。

    $.get("questionCreator.html", function(data){
        $("#questionForm").append(data);
        //change the values here
    });
于 2012-11-22T08:29:44.273 に答える
0

replaceWithを使用して内容を変更してみてください。ただし、呼び出し$(".questionInput")によって配列が返される可能性があるため、可能な要素をループするのが最善です。一意でない限り、id 属性 (#questionInput)にして、ループを必要とせずに呼び出します。

$('.questionInput').each(function(i, obj) {
    $(this).replaceWith('I am replacing the content for .questionInput');
});

これはget、データが返された後に関数内に配置する必要があります。

于 2012-11-22T08:32:36.943 に答える