このような問題のほとんどは、AJAXの非同期性が原因です。要求と応答の AJAX ラウンド トリップが完了しない限り、 AJAX 経由でロードするもの ( .post()、、、、 ) はすべて「存在」しません。.load().ajax().get()
AJAX でロードしたもの (HTML ビット、JSON 応答など)を、AJAX 要求の成功時に呼び出されるコールバック関数で必ず "使用" してください。
たとえば、私のページajax.phpがこの文字列を返すとしましょう: <div id='ajaxdiv'>hello!</div>、この (HTML) 文字列を にロードしたいとします#mydiv:
$("#mydiv").load("ajax.php");
console.log($("#mydiv #ajaxdiv")); <- undefined
リクエストの完了に関係なくコードが続行されるため、機能しません。その代わり:
$("#mydiv").load("ajax.php", function () { console.log($("#mydiv #ajaxdiv"));});
JQuery は、リクエストが完了した場合にのみコールバック関数を使用するため、機能します。{class: test}( URL とコールバック関数の間に配置するだけで、 のようなパラメーターを追加することもできます)。
編集: $POST ではなく $_POST を使用してください。