1

id=OCRID で div を更新しようとしています。これは、データを含むページ上の div です。最初は次の URL のコードを使用しましたが、jQuery アプローチに切り替えました。<-醜い ajax-> . これに切り替えました。アラートを使用して、成功時に返されるメッセージが正しいメッセージであることを確認しましたがdocument.getElementById(OCRID).innerHTML=msg、値は変更されません。サーバーからのデータではなく、同様のことを行う他のJavaScriptがあります。助けてください?

$.ajax({
   type: "GET",
   url: url,
   data: "q="+OCRID+"&newstatus="+document.getElementById(OCRID).value,
   success: function(msg, OCRID){
     document.getElementById(OCRID).innerHTML=msg;
   }
 });
4

4 に答える 4

3

まず、あなたが言及OCRIDしたのはのIDでdivあり、あなたが使用した

document.getElementById(OCRID).value // a div doesn't have a value attribute

HTML要素の値を返しますが、div値属性を含まず、使用した成功コールバックで

success: function(msg, OCRID){
    document.getElementById(OCRID).innerHTML=msg; // innerHTML is right for a div
}

jQueryドキュメントから:

成功(データ、テキストステータス、jqXHR)

リクエストが成功した場合に呼び出される関数。この関数には 3 つの引数が渡されます。dataType パラメータに従ってフォーマットされた、サーバーから返されたデータ。ステータスを説明する文字列。jqXHR (jQuery 1.4.x では XMLHttpRequest) オブジェクト。jQuery 1.5 以降、success 設定は関数の配列を受け入れることができます。各関数が順番に呼び出されます。これは Ajax イベントです。

この場合、コールバックで 3 つのパラメーターを使用OCRIDするため、2 番目のパラメーターとして使用しないでください。これらは基本的に、この場合は yourであり、この場合は becomeであり、応答のステータス メッセージであり、3 番目のパラメーターはオブジェクトです。だからそうあるべきだjQuerysuccessdata, textStatus, jqXHRdatamsgOCRIDtextStatusxhr

$.ajax({
    type: "GET",
    url: url,
    data: "q="+OCRID+"&newstatus="+$('#'+OCRID).html(), // or text()
    success: function(msg){
        $('#'+OCRID).html(msg); // or text()
    }
});

OCRIDまた、あなたは変数のように見え、これはあなたのajax呼び出しのスコープで利用可能でなければならないことを覚えておいてください。これが変数でない場合は$('#OCRID')、以下に示すように両方の場所にある必要があります

$('#OCRID').html();

そして成功のコールバックで

$('#OCRID').html(msg);
于 2013-01-03T19:22:54.113 に答える
0

次の行を置き換えます。

document.getElementById(OCRID).innerHTML=msg;

と:

document.getElementById("OCRID").innerHTML=msg; // notice the quotes
于 2013-01-03T18:55:23.507 に答える
0

要素へのインターフェイスに jQuery バージョンを使用しないのはなぜですか? 私にOCRIDは変数のように見えますよね?

$.ajax({
   type: "GET",
   url: url,
   data: "q="+OCRID+"&newstatus=" + $('#' + OCRID).text(),
   success: function(msg, OCRID){
     $('#' + OCRID).html(msg);
   }
 });
于 2013-01-03T18:57:00.727 に答える
0

成功のコールバックがOCRIDパラメーターとして含まれている場合 (これは正しくありません)、データ パラメーターで使用したものの代わりに使用されるため、削除してください。

$.ajax({
   type: "GET",
   url: url,
   data: "q="+OCRID+"&newstatus="+document.getElementById(OCRID).innerHTML,
   success: function(msg){
     document.getElementById(OCRID).innerHTML=msg;
   }
 });
于 2013-01-03T18:58:57.803 に答える