JQuery .remove()没有删除id的段落

时间:2017-04-13 12:29:12

标签: jquery

我的HTML正文中有这样的内容:

<p id="test.txt"><a href="javascript:void(0);" class="disp">test.txt</a> [<a href="javascript:void(0);" class="del">x</a>]</p>
<p id="test2.txt"><a href="javascript:void(0);" class="disp">test2.txt</a> [<a href="javascript:void(0);" class="del">x</a>]</p>
<p id="test3.txt"><a href="javascript:void(0);" class="disp">test3.txt</a> [<a href="javascript:void(0);" class="del">x</a>]</p>
<p id="test4.txt"><a href="javascript:void(0);" class="disp">test4.txt</a> [<a href="javascript:void(0);" class="del">x</a>]</p>
<p id="test5.txt"><a href="javascript:void(0);" class="disp">test5.txt</a> [<a href="javascript:void(0);" class="del">x</a>]</p>
<p id="test6.txt"><a href="javascript:void(0);" class="disp">test6.txt</a> [<a href="javascript:void(0);" class="del">x</a>]</p>

这是相关JQuery代码的一部分:

$('a').click( function(e) {
    e.preventDefault();
    var myClass = $(this).attr("class");
    if (myClass==="del"){
        var idToDelete = $(this).parent().attr("id");
        alert(idToDelete);
        $("#" + idToDelete).remove();
        return;
    }
})

单击其中一个链接时,似乎正确获取了ID,但是,该段落未从页面中删除。我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以遍历要删除的元素,只需使用

即可
 $(this).parent().remove();

由于$("#" + idToDelete).remove();中的元字符.需要使用idToDelete进行转义,因此\\无法正常工作。

注意,您的代码可以改进为

$('a.del').click( function(e) {
    e.preventDefault();
    $(this).parent().remove();
})