$.ajax({
type : 'GET',
url : 'dialog.php',
data: {
champion_name:champion_name
},
dataType: "text",
success : function(data){
alert(data);
var dataStr = $(data).find('h2').html();
$('#champImg').find('div').html(dataStr);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert('failed');
}
});
我试图在success函数中解析返回的数据,因为我需要在一个div中添加一些元素,在其他div中添加其他元素。
然而,$(data).find('h2').html()
永远不会奏效
我尝试了一切可能的方法,包括将dataType
更改为html
,但它正在运作。
返回的数据有效,因为我看到它成功提醒dialog.php
的html代码。只有$(data).find('h2').html()
不起作用!
答案 0 :(得分:3)
它失败了,因为没有外部元素,因此选择返回两个元素。然后查找当前元素的子搜索,但是您的选择会返回两个元素,一个用于image
,另一个用于h2
,而不是h2
- 子元素
如果html已经
<div>
<img class='style2'
border='2'
src='$imgPath'
style='width:165px;height:232px;'>
<h2>hello</h2>
</div>
它会起作用。
如果您不能/不会更改返回的html,您可以将成功句柄更改为
function(data){
alert(data);
var dataStr = $(data)[1].html();
$('#champImg').find('div').html(dataStr);
}
答案 1 :(得分:1)
您可以使用jQuery filter
方法代替find
:
var dataStr = $(data).filter("h2").html();
以下是jsFiddle:http://jsfiddle.net/5zWHa/
的示例