从链接列表中删除链接

时间:2011-01-21 15:37:33

标签: javascript jquery

如果点击了链接,如何从下面的链接列表中删除链接。链接的HTML是以下

<a href="http://www.mysite.com/page1.html" class="standard_link">link 1</a><br />
<a href="http://www.mysite.com/page2.html" class="standard_link">link 2</a><br />
<a href="http://www.mysite.com/page3.html" class="standard_link">link 3</a><br />
<a href="http://www.mysite.com/page4.html" class="standard_link">link 4</a><br />
<a href="http://www.mysite.com/page5.html" class="standard_link">link 5</a><br />

编辑:刚刚意识到我需要删除<br />,所以其余的链接会向上移动。看起来很奇怪,链接被删除了。

编辑:这是当前的脚本:

$(".standard_link").live('click', function(event)
{
    event.preventDefault();

    my_function($(this))
});

function my_function(link)
{
    // do some stuff first  

    // remove the clicked link plus the <br />
    link.add(link.nextSibling).remove();

    // do some other stuff
}

4 个答案:

答案 0 :(得分:3)

$('a.standard_link').click(function(){ // when any link with the class "standard_link" is clicked
    $(this).remove(); // remove it
});

请注意,如果您想避免发生默认事件,则需要event.preventDefault()

$('a.standard_link').click(function(e){ // when any link with the class "standard_link" is clicked
    e.preventDefault();
    $(this).remove(); // remove it
});

修改:要删除<br/>,请使用add

$(this).add(this.nextSibling).remove();

请注意,如果链接和换行符之间存在任何(包括空格),则会中断。

答案 1 :(得分:1)

$(".standard_link").click(function(){
  $(this).remove();
});

答案 2 :(得分:1)

你的问题有点模糊。实际上有many possibilities。这一切都取决于你的确切要求。

// link href contains 'page5'
$("a[href*=page5]").remove();

// links ending with page5.html
$("a[href$=page5\\.html]").remove();

// remove all links with some class
$(".standard_link").remove();

如果您想根据链接的文本或html内容进行定位,可以执行以下操作:

$("a.standard_link").filter(function() {
    return $(this).text() == "link 2";
}).remove();

答案 3 :(得分:0)

你根本不需要JavaScript。在CSS中,您可以导致访问的链接不显示,例如:

a:visited { display: none; }