如何使用load()刷新div而不复制元素?

时间:2011-12-14 22:29:04

标签: jquery

我使用此代码使用id="my"刷新div:

<script type="text/javascript">
function recp() {
  setInterval(function() 
{
    $("#my").load(location.href+ ' #my');
});
}
</script>


<div id="my"><?php echo date('a:i:s'); ?></div>

它有效,但它会生成以下代码:

<div id="my"><div id="my">pm:25:40</div></div>

如何在不生成双div的情况下刷新div?

换句话说,如何只刷新这个div:

<div id="my"><?php echo date('a:i:s'); ?></div> 

3 个答案:

答案 0 :(得分:6)

将另一个div添加为容器并向其中加载内容,就像那样。

<script type="text/javascript">
function recp() {
  setInterval(function() 
  {
    $("#result").load(location.href+ ' #my');
  });
}
</script>

<div id="result">
  <div id="my"><?php echo date('a:i:s'); ?></div>
</div>

答案 1 :(得分:1)

更改代码以使用$.get()代替.load()

<script type="text/javascript">
function recp() {
  setInterval(function() {
      $.get(location.href, function(data){ 
          $('#my').empty().append( $(data).find('#my').children() );
      });
  });
}
</script>

答案 2 :(得分:0)

你可以尝试:

<script type="text/javascript">
function recp() {
  setInterval(function() 
    {
        $("<div/>").load(location.href+ ' #my', function(response, status, xhr) {
            $("#my").replaceWith(response);
            $(this).remove();
        });
    });
}
</script>