Ajaxを使用してjQueryでデータを返すことができません
質問
AjaxとjQueryを使用してコードを開発しました。 my.phpから応答があり、 応答の値を抽出しようとしました。ここにコード(HTML):
My.php
?php
echo '<div id="title">My Title </div>';
echo '<div id="message"> My message </div>';
?>
タイトルとメッセージを抽出して、コードが下にくるようにします。
<head>
<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert("OK");
$.ajax({
type:"POST",
url: "my.php",
cache:false ,
success: function(data){
$("#response").html(data);
var $response = $(data);
var oneval = $response.find('#title').text();
var subval = $response.find('#message').text();
alert(oneval);
}
});
});
</script>
</head>
<body>
<div id="response">
</div>
</body>
</html>
...
問題は、警告しようとしたときに動作しないことです。このロジックの何が問題になっていますか?タイトルとメッセージを抽出するために別の関数を使用する必要がありますか?
解決
OK、 http://jsbin.com/udige/ にアクセスすると、動作を確認できます。 。
キーは.findではなく .filter
を使用しています。2つのdivは応答のルート要素です。私の間違い。
基本的に次の操作を実行します。
success: function(data){
$("#response").html(data);
var $response = $(data);
var oneval = $response.filter('#title').text();
var subval = $response.filter('#message').text();
alert(oneval);
}
他のヒント
応答があなたが書いたときに戻ってきた場合、私があなたに与えたコードは動作します。
デバッガーの使用方法を本当に学ぶ必要があります( Firebug )コードにブレークポイントを設定して、コンソールを使用してセレクターをテストし、変数の値などを確認できるようにします。 また、元の質問を相互参照していないので、まったく新しい質問を開くのではなく、元の質問と回答に実際に応答する必要があります。
代わりにこれを使用してみてください:
var oneval = $("#response #title").text();
var subval = $("#response #message").text();
所属していません StackOverflow