使用jQuery ajax response html更新div

时间:2013-08-05 18:02:04

标签: jquery ajax asp-classic get replacewith

我正在尝试使用ajax html响应中的内容更新div。我相信我的语法正确,但div内容被替换为整个HTML页面响应,而不仅仅是在html响应中选择的div。我做错了什么?

    <script>
        $('#submitform').click(function() {
            $.ajax({
            url: "getinfo.asp",
            data: {
                txtsearch: $('#appendedInputButton').val()
            },
            type: "GET",
            dataType : "html",
            success: function( data ) {
                $('#showresults').replaceWith($('#showresults').html(data));
            },
            error: function( xhr, status ) {
            alert( "Sorry, there was a problem!" );
            },
            complete: function( xhr, status ) {
                //$('#showresults').slideDown('slow')
            }
            });
        });
    </script>

3 个答案:

答案 0 :(得分:67)

您正在设置#showresults的{​​{1}}的html,然后将其替换为自身,这没有多大意义?
我猜你在哪里真正试图在返回的数据中找到data,然后使用来自ajax调用的html更新DOM中的#showresults元素:

#showresults

答案 1 :(得分:2)

差不多5年后,我认为我的回答可以减少许多人的辛勤工作。

使用来自ajax调用的HTML中的HTML更新DOM 中的元素可以通过这种方式实现

$('#submitform').click(function() {
     $.ajax({
     url: "getinfo.asp",
     data: {
         txtsearch: $('#appendedInputButton').val()
     },
     type: "GET",
     dataType : "html",
     success: function (data){
         $('#showresults').html($('#showresults',data).html());
         // similar to $(data).find('#showresults')
     },
});

replaceWith()

// codes

success: function (data){
   $('#showresults').replaceWith($('#showresults',data));
},

答案 2 :(得分:1)

也可以使用jQuery的.load()

$('#submitform').click(function() {
  $('#showresults').load('getinfo.asp #showresults', {
    txtsearch: $('#appendedInputButton').val()
  }, function() {
    // alert('Load was performed.')
    // $('#showresults').slideDown('slow')
  });
});
  

与$ .get()不同,允许我们指定要插入的远程文档的一部分。这是通过url参数的特殊语法实现的。如果字符串中包含一个或多个空格字符,则第一个空格后面的字符串部分将被假定为jQuery选择器,用于确定要加载的内容。

  我们可以修改上面的示例,只使用提取的文档的一部分:

$( "#result" ).load( "ajax/test.html #container" );
  

当此方法执行时,它会检索ajax / test.html的内容,但随后jQuery会解析返回的文档以查找ID为container的元素。此元素及其内容将插入到具有结果ID的元素中,并且将丢弃检索到的文档的其余部分。