2014-12-23 42 views
0

我想动态更新div,我可以看到当我看到检查元素但我无法在浏览器中看到内容被添加到div。更改为div不会反映在浏览器上

<script ="text/javascript"> 
$(function() { 
    var baseURL = 'aaa.html'; 
      //load content for first tab and initialize 
    $.get('aaa.html', function (data) { 
     var parser = new DOMParser() 
     var el = parser.parseFromString(data, "text/html"); 
     var text = el.getElementById("container"); 
     var home_object = document.getElementById("home"); 
     var content = new XMLSerializer().serializeToString(text); 
     home_object.appendChild(text) ; 
     console.log(home_object); 
     }); 
}); 
</script> 
+3

我看到你正在使用jQuery,但同时你正在使用JavaScript来选择元素的id ...这是什么原因?因为你可以很简单地执行'$('#home')。append(text)'并且这应该完成同样的事情。 – BuddhistBeast

+1

是啊为什么你不会''.get('aaa.html',function(data){$(data).find('#container')。appendTo('#home')});' – prodigitalson

+0

否,我实际上是新的UI,所以只是尝试不同的事情。 –

回答

2

只有jQuery的:

$.get('aaa.html', function (data) { 
    var $content = $(data).find('#container'); 
    // this would replace 
    $('#home').html($content); 

    // the following would append 
    // $('#home').append($content);  
}); 
+0

我尝试了同样的事情,内容没有被添加到ID与家里的股利。我的代码问题是我可以看到正在添加的内容,但它并未反映在浏览器中 –

+0

您使用的浏览器是什么?你在控制台上看到任何错误吗? – prodigitalson

+0

我用谷歌铬和火狐。我没有在控制台上看到任何错误。 –

1

如果你没有必要追加新的内容,以现有的内容,你可以使用jQuery的Ajax​​方法,以减少您的代码:

$('#home').load('aaa.html #container'); 

至于你没有看到浏览器中的内容,你可能有一个display:none类适用于#home或部分或全部内容你正在加载。你可能想尝试这样的:

$('#home').load('aaa.html #container', function() { 
     $(this).show(); 
    }); 

或者:

$('#home').load('aaa.html #container', function() { 
     $(this).find('*').show(); 
    }); 

。当然,如果有这些节目的内容,那么你知道你应该可以解决你的CSS。

+0

我试过这个,但它仍然没有工作。我的仪表板正在使用链轮框架。这是否有所作为?我正在初始化我的erb文件中的脚本 –

相关问题