JQuery删除超链接并替换为文本

时间:2016-07-19 19:20:38

标签: javascript jquery html

如何从li中删除超链接并将其替换为其他文本?

<li class="pull-left">
     <a href="#" class="js-close-post" data-post-id="1">
       Close
     </a>
 </li>

以下删除了整个li。我想要的是淡出链接并淡入文本Closed

<li class="pull-left">
    Closed

 </li>

  $(".js-close-post").click(function (e) {
        var link = $(e.target);
        link.parents("li").fadeOut(function () {
             $(this).remove();
        });

  });

3 个答案:

答案 0 :(得分:3)

使用text('Closed')上的html('Closed')<li>将删除<a>

尝试

$(".js-close-post").click(function (e) {  
     // "this" is the <a>      
     var $li = $(this).closest("li").fadeOut(function () {              
          $li.text('Closed').fadeIn();
     });
});

答案 1 :(得分:2)

你可以为此jQuery .replaceWith()

  $(".js-close-post").click(function (e) {
        var link = $(e.target);
        $a = $(this);
        $a.parents("li").fadeOut(function () {
             $a.replaceWith($a.text());
        }).fadeIn();

  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="pull-left">
     <a href="#" class="js-close-post" data-post-id="1">
       Close
     </a>
 </li>

答案 2 :(得分:0)

尝试以下方法:

$(".js-close-post").click(function () {
    $(this).fadeOut("slow", function () {
        var parent = $(this).parent();
        var closedElement = parent.append("Closed").hide();    
        closedElement.fadeIn("slow");
        $(this).remove();
   });
});

https://jsfiddle.net/noLscfh9/