需要像jquery empty()这样的函数来删除由jquery添加的元素

时间:2011-08-28 06:53:57

标签: javascript jquery dom

我有一个名为“内容”的空白div。稍后使用jquery append将链接添加到“内容”。使用empty()不起作用;我猜empty()不会清除jquery添加的链接,因为链接没有添加到DOM中?

函数应该清除,然后显示新的链接,但它不清除链接,只是附加到现有的任何内容。

    function getSubRedditLinks(url)
{  
   $("#content").empty(); //doesnt work

   $.getJSON(
      url + suffix, 
      function foo(data) 
      { 
         $("#content").empty(); //doesnt work
         $.each(
            data.data.children, 
            function (i, post) 
            {
               $("#content").append(  '<section>' + 
                                    '<a href="#">' + post.data.title + '</a>' + 
                                    '</section>' );
            } 
         );
      } 
   );
   $("#content").empty(); //doesnt work
}

函数被调用如下:

<li><a class="link" href="#" onclick=getLinks("localhost")>Blogroll</a></li>

显然,empty()应该可以工作。我简化了上面的代码,把它放在我放的3个地方。它只是不断添加#content

的链接

3 个答案:

答案 0 :(得分:1)

使用$(...).remove()代替......或$("#content").html("")

答案 1 :(得分:1)

试试这个:

function getLinks(url)
{
   $.getJSON(
      url + suffix, 
      function(data) 
      { 
         var items = [];
         $.each(
            data.data.children, 
            function (i, post) 
            {
                var section = $('<section></section>').append('<a></a>');
                section.find('a').attr('href', '#post=post-' + i).text(post.data.title);
                items.push(section[0].outerHTML);
            } 
         );
         $('#content').empty().append(items.join(''));
      });
}

答案 2 :(得分:0)

适合我,请查看

http://jsfiddle.net/gzNFK/2/

注意:删除评论以使用它