如何操作ajax响应中返回的html?

时间:2010-12-10 11:53:15

标签: jquery

我已经搜索并尝试过很多东西,但是根本无法让它发挥作用。我有以下内容:

$.ajax({
    url: 'g.html',
    type: 'GET',
    dataType: 'html',
    timeout: 4000,
    cache: false,
    error: function(request, status, error){ alert('Error'); },
    success: function(html){
        alert(html);
        var newData=$('#baa', html);
        $('#result').html('Blah'+newData);
    }
});

alert(html)输出g.html中包含的html。然后我试着读入id ='baa'的内容并将其移入主文档中的id ='result'。我的最终目标是在将数据置于其中之前对其进行操作,但我无法使这个简单版本正常工作。

g.html看起来像这样......

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 TRANSITIONAL//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Testing</title>
</head>
<body>
    <div id='baa'>
        <ul>
            <li>list 1</li>
            <li>list 2</li>
            <li>list 3</li>
        </ul>
    </div>
</body>
</html>

如果我执行警告(html),我会获得完整的html输出,如果我尝试使用newData执行任何操作,我会 [object Object]

完全难倒,任何帮助真的很感激!

2 个答案:

答案 0 :(得分:3)

尝试...

success: function(html){
            var $html = $(html);
            $('#result').html($html.filter('#baa').html());         
         }

答案 1 :(得分:0)

尝试:

var newData=$(html).find('#baa');
$('#result').html('Blah'+newData.html());

另外,值得一试

alert(newData.html());

...查看更多正在发生的事情(这应该会阻止[object object]输出)。