반환 데이터는 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>
...
문제는 내가 경고하려고 할 때 작동하지 않는다는 것입니다. 이 논리에 무슨 문제가 있습니까? 다른 기능을 사용하여 제목과 메시지를 추출해야합니까?
해결책
알았어 http://jsbin.com/udige/ 그리고 당신은 그것이 작동하는 것을 볼 수 있습니다.
키는 사용 중입니다 .filter
, 두 개의 div가 응답의 루트 요소이기 때문에. 내 실수.
기본적으로 다음을 수행하십시오.
success: function(data){
$("#response").html(data);
var $response = $(data);
var oneval = $response.filter('#title').text();
var subval = $response.filter('#message').text();
alert(oneval);
}
다른 팁
당신이 그것을 쓴대로 응답이 돌아 오면 내가 당신에게 준 코드는 작동합니다.
디버거 사용 방법을 배워야합니다 (개똥 벌레) 및 코드에 중단 점을 넣어 콘솔을 사용하여 선택기를 테스트하고 변수의 값을 볼 수 있습니다. 또한 특히 새로운 질문을 열지 않고 제가 제공 한 원래 질문과 답변에 실제로 응답해야합니다. 당신은 당신의 원본을 교차 참조조차하지 않았습니다.
대신 이것을 사용해보십시오.
var oneval = $("#response #title").text();
var subval = $("#response #message").text();
제휴하지 않습니다 StackOverflow