2016-12-14 62 views
1

在页面上我有链接,通过单击它们可删除一个元素。这是我的代码:单击具有唯一ID的链接上的点击事件

<a href="#" class="remove-existed-field" id="link0">Delete input</a> 
<a href="#" class="remove-existed-field" id="link1">Delete input</a> 

等等。正如你所看到的,这些链接与ID不同,因此可以有数百个链接与唯一的ID。我需要删除最近的li元素给他们。我做一个这样的方式:

$(document).ready(function() { 

$('#link0').click(function (e) { 
    e.preventDefault(); 
    $(this).closest('li').remove(); 
    }) 

}); 

它适用于id="link0"

我试图这样做是为了把ID的数字部分到一个变量i

var i = 0; 

$('#link0' + i).click(function (e) { 
    e.preventDefault(); 
    $(this).closest('li').remove(); 
    }) 

,但我可以是不是数字,如何使它工作,我应该如何增加i(我应该在哪里输入代码i++)。任何帮助将是appriciate。谢谢!

+0

how li与链接有关吗?每个li都有唯一的id作为链接? – ScanQR

+0

为什么你不能将事件监听器绑定到'class'而不是'id'? –

+0

如果我将它绑定到类,它将删除所有最接近的li,但不是我需要的那个 –

回答

2

可以使用classes代替IDS的元素...

你可以这样说:

$(document).ready(function() { 
 

 
    $('.remove-existed-field').on('click', function(e) { 
 
    \t \t $(this).closest('li').remove(); 
 
    }) 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li><a href="#" class="remove-existed-field" id="link0">Delete input</a></li> 
 
<li><a href="#" class="remove-existed-field" id="link1">Delete input</a></li>

希望这有助于!

2

您可以使用选择开始。

$('[id^=link]').click(

它将面向所有那些id开始与link

2

如果你想处理每个链接a那么你可以改为在class。 如果你真的需要它,你也可以得到点击链接的id

$(document).ready(function() { 
    $('a.remove-existed-field').click(function (e) { 
     e.preventDefault(); 
     // $(this).attr('id'); 
     $(this).closest('li').remove(); 
    }); 

}); 
+0

我认为这段代码已经被回答了...它的重复! –