jQuery - 单击时删除 Link

jQuery - Remove Link when clicked

我有 2 到 4 个 links 具有相同的 IDs。

这是我的代码:

<a href="#" id="link" class="hallo">Next 1</a>
<a href="#" id="link" class="hallo">Next 2</a>
<a href="#" id="link" class="hallo">Next 3</a>
<a href="#" id="link" class="hallo">Next 4</a>
<a href="#" id="link" class="hallo">Next Article</a>

我想要实现的是在 clickedremove link。例如:link 和文本 Next 2 被点击时 我想删除那个 link.

我试过这个:

$(document).ready(function(){
    $('#link').click(function () {
        $('#link').closest('a.hallo').remove();
    });
});

但它只删除第一个 link (Next 1) 而不是其他的。

$(document).ready(function(){
 $('#link').click(function () {
    $('#link').closest('a.hallo').remove();
 });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="link" class="hallo">Next 1</a>
<a href="#" id="link" class="hallo">Next 2</a>
<a href="#" id="link" class="hallo">Next 3</a>
<a href="#" id="link" class="hallo">Next 4</a>
<a href="#" id="link" class="hallo">Next Article</a>

首先,id 必须在 html 中的元素中是唯一的,其次,您以具有 id 的元素为目标,因此每次找到具有 id link 的第一个元素时都会被选中向上,你需要使用 class 属性和选择器。

HTML:

<a href="#" id="link1" class="hallo">Next 1</a>
<a href="#" id="link2" class="hallo">Next 2</a>
<a href="#" id="link3" class="hallo">Next 3</a>
<a href="#" id="link4" class="hallo">Next 4</a>
<a href="#" id="link5" class="hallo">Next Article</a>

Jquery:

$(document).ready(function(){
    $('.hallo').click(function () {
        $(this).remove(); // remove element which is being clicked
    });
});

我们所写的是,每当单击具有 class hallo 的元素时,删除该元素 $(this) 选择器将选择当前生成的元素在我们的案例中是点击事件。

片段:

$(document).ready(function(){
    $('.hallo').click(function () {
        $(this).remove(); // remove element which is being clicked
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<a href="#" id="link1" class="hallo">Next 1</a>
<a href="#" id="link2" class="hallo">Next 2</a>
<a href="#" id="link3" class="hallo">Next 3</a>
<a href="#" id="link4" class="hallo">Next 4</a>
<a href="#" id="link5" class="hallo">Next Article</a>

I have 2 to 4 links with same IDs.

这是一个很大的问题..你不应该有重复的 id's 那是你代码中的问题。

问题: 您当前的脚本 $('#link').click(function () { 它不会 select 所有元素都具有相同的 id它 select 只是从 HTML 的顶部解析具有该 id 的第一个元素 。所以从技术上讲,事件只绑定到第一个元素。

解决方案: 删除重复的 ID 并编写脚本以在 class hallo 上运行。使用下面的代码

$(document).ready(function(){
    $('.hallo').click(function () {
        $(this).remove();
    });
});

这样试试:

对点击使用 class 选择器而不是 id。

$(this) - 指向点击的 link。

$(document).ready(function(){
 $('.hallo').click(function () {
    $(this).remove();
 });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="link" class="hallo">Next 1</a>
<a href="#" id="link" class="hallo">Next 2</a>
<a href="#" id="link" class="hallo">Next 3</a>
<a href="#" id="link" class="hallo">Next 4</a>
<a href="#" id="link" class="hallo">Next Article</a>