jquery:删除与触发事件的链接具有相同ID的链接?

时间:2009-12-26 01:00:05

标签: jquery

我有两个ID相同的链接。

 <a class='showtag' id=" . $row['id'] . " href=''>" . $row['name'] . "</a><a class='removetag' id=" . $row['id'] . " href=''> -</a><br />";

如何通过点击第二个删除第一个。

我只需要选择器与jquery remove()一起使用。

编辑:我试过这个:

$("a[id='" + event.target.id + "']").remove();

但问题是它还删除了所有其他具有相同ID的链接(我现在已将它们切换到类)。

所以我需要一个选择器,在触发链接之前删除链接,并且它是它的兄弟(或者在触发链接旁边)。

感谢

2 个答案:

答案 0 :(得分:4)

您不应该有两个具有相同ID的DOM元素。

假设ID属性是唯一的,您将遇到问题并且跨浏览器不一致。

我建议你在链接中使用一个类,而不是重复ID。

但由于这两个锚是兄弟姐妹,你可以这样做(注意你不需要id):

$('.removetag').click(function () {
  $(this).prev('.showtag').remove();
});

答案 1 :(得分:0)

我建议改为从.removetag链接中删除ID。我认为您将拥有上述解决方案的问题是,您将删除所有具有“showtag”类的链接。您确实需要一个具有唯一ID的链接。我建议:

<a class='showtag' id=show_" . $row['id'] . " href=''>" . $row['name'] . "</a>
<a class='removetag' id=remove_" . $row['id'] . " href='' onclick="$('#show_" . $row['id'] . "'").remove();"> -</a>
<br />";