jQuery .html()不能在IE8中工作


jQuery .html() doesn't work in IE8

我有一个AJAX响应,它使用$_GET返回信息,然后将其设置为容器的HTML。此功能适用于Chrome, Safari, FireFox, Opera,但不适用于IE8。

$(function() {
  $('#content .entry-content a.mais-menos').click(
    function(){
      $('#content .entry-content a.mais-menos').css('background-position','bottom left');
      if($(this).siblings('.descricao-campanha').css('display')=='block'){
        $(this).css('background-position','bottom left');
        $(this).siblings('.descricao-campanha').slideUp(1000);
      }else{
        $('#content .entry-content .descricao-campanha').slideUp(1000);
        $(this).css('background-position','top left');
        $(this).siblings('.descricao-campanha').slideDown(1000);
        var mae = $(this).siblings('.descricao-campanha');
        var codigo = $(this).siblings('.cdPost').attr('value');
        if (mae.children('.carregando').is(":visible")){
          $.get('<?= get_bloginfo("url") ?>/get_associado.php', {cd:codigo}, function(retorno) {
            // mae.children('.carregando').hide();
            mae.html(retorno);
            // alert(retorno);
          });
        }
      }
      return false;
    }
  );
});

如果我警告retorno,我可以看到数据已经返回,但是当我将它附加到div时,它在IE8中失败。

有人能帮我理解为什么这个失败和如何解决它吗?

检查此页中的错误http://www.superredems.com.br/associados/

这是在没有图像的情况下的返回值。

<div class="clear"></div>
  <div class="descricao-mercado">
    Fone: 67 3245 3330<br />
    Praça Das Nações, 330
    Bairro Centro
    <a target='_blank' href='http://pt.wikipedia.org/wiki/Anast%C3%A1cio_%28Mato_Grosso_do_Sul%29' title='ANASTACIO - MS'>ANASTACIO - MS</a>
  </div>
  <div class="clear"></div>
  <p></p>
  <div class="clear"></div>
  <div class="imagens-destaque-associado">
    <div class="clear"></div>
  </div>
  <div class="clear"></div>
</div>

在响应中有一个额外的div结束标记。删除它,它会正常工作

<div class="clear"></div>
<div class="descricao-mercado">
    Fone: 67 3239 1810<br />
    Av João Garcia De Souza, 46
    Bairro Jardim Nova Água Clara
    <a target='_blank' href='http://pt.wikipedia.org/wiki/%C3%81gua_Clara' title='ÁGUA CLARA - MS'>ÁGUA CLARA - MS</a>
</div>
<div class="clear"></div>
<p></p>
<div class="clear"></div>
<div class="imagens-destaque-associado">
<div class="clear"></div>
</div>
<div class="clear"></div>
</div> **<-- this is extra**
<script>
    $('img').parent('a').colorbox();
</script>

当在IE8中添加标记时,您需要确保它是有效的,此错误已在这里记录,通常是由未关闭标记引起的

@PeteUh完全正确。以下是我尝试设置的html:

<div class="clear"></div>
<div class="descricao-mercado">
    Fone: 67 3239 1810<br />
    Av João Garcia De Souza, 46
    Bairro Jardim Nova Água Clara
    <a target='_blank' href='http://pt.wikipedia.org/wiki/%C3%81gua_Clara' title='ÁGUA CLARA - MS'>ÁGUA CLARA - MS</a>
</div>
<div class="clear"></div>
<p></p>
<div class="clear"></div>
<div class="imagens-destaque-associado">
    <div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<script>
     $('img').parent('a').colorbox();
</script>

你可以看到你有太多的结束div标签