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

返されたデータは有効です。なぜなら、html コードがdialog.php正常に警告されていることがわかるからです。しか$(data).find('h2').html()機能しません!

4

2 に答える 2

3

外側の要素がなく、その選択で 2 つの要素が返されるため、失敗します。imageFind は現在の要素の子を検索しますが、選択すると2 つの要素が返され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);
}
于 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 に答える