使用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
,而不是.find,因为两个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