2016-12-14 89 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

我認爲這段代碼已經被回答了...它的重複! –