使用javascript更改IE8中div的内容

时间:2011-06-17 04:27:07

标签: jquery internet-explorer-8

我正在尝试使用javascript / jquery更改div的内容。虽然该代码适用于IE9,FF,Chrome,Safari和Opera。它在IE 8上失败。我已经尝试过.append,.appendTo,.innerHTML。容器div的内容始终为空

可能有什么不对。代码是

<script type="text/javascript">
jQuery(document).ready(
function()
{
var containers = jQuery('.page_content');


if (!containers.length)
{
return
}
var container = containers.eq(0);

container.block();
jQuery.get("<?php echo Router::url( array('controller' => 'user',
                        'action' => 'profile',
                        'admin' => false));
 ?>
    ", function(data)
    {
    if (jQuery.browser.msie)
    {

        alert(container.html()); //returns correct result
        container.empty();
        container.innerHTML = new String(data); 
        alert(data); //shows right output, some html
        alert(container.html()); //is always empty
    }
    else
    {
        container.html(data);
    }
    container.unblock();
    }
    );

    }

    );
</script>

3 个答案:

答案 0 :(得分:1)

使用replaceWith

$(container).replaceWith(data);

也就是说,如果data与原始内容相同div

注意:我正在使用IE8进行测试。

答案 1 :(得分:0)

如果您只是想重置容器中的数据,可以这样做:

container.html(data);

查看将字符串传递给.html( htmlString )

时会发生什么

也许您的选择器无法正常工作。如果您只想要第一个带有.page_content类的元素,为什么不这样做:

var container = jQuery('.page_content:first');

答案 2 :(得分:0)

我刚刚使用以下代码

解决了这个问题
error: function (data) {
    var resultedHTML = data.responseText;
    $('#Import-1').html(resultedHTML);
    return false;
}

对我不起作用。因此我使用responseText

解决了它