4
$.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');
    }
});

我试图在成功函数中解析返回的数据,因为我需要在某个 div 中附加一些元素,在其他 div 中附加其他元素。

但是,$(data).find('h2').html()永远不会起作用。
我尝试了所有可能的方法,包括更改dataTypehtml,但它正在工作。

返回的数据是有效的,因为我看到它dialog.php成功地提醒 html 代码。只是$(data).find('h2').html()不起作用!

4

2 回答 2

3

它失败是因为没有外部元素,因此选择返回两个元素。查找搜索然后是当前元素的子元素,但是您的选择返回两个元素,一个用于 the image,一个用于h2既不带h2-child

如果 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);
}
于 2012-12-07T13:17:02.923 回答
1

您可以使用 jQueryfilter方法代替find

var dataStr = $(data).filter("h2").html();

这是一个示例 jsFiddle:http: //jsfiddle.net/5zWHa/

于 2012-12-07T13:25:26.560 回答