如何从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();
});
});
答案 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();
});
});