2017-05-30 52 views
0

Yesterady我問我如何刪除我的按鈕How to remove the input element before my button?之前的輸入,我得到了一個在片段中工作的答案。現在我嘗試在我的活動中使用它,但我無法刪除該字段,我只能刪除該按鈕。如何使用.prev與Meteor事件?

Template.myTemplate.events({ 
'click .removeField': function(event, template){ 
    $(this).prev('input').remove(); 
    $(event.target).prev('input').remove(); 
    $(event.target).prev().prev('input').remove(); 
    $(event.target).remove(); 
    } 

$(event.target)i.fa.fa-times所以我prev().prev('input')試圖在a -> input

我的HTML是下列之一:

<div class="form-style-2"> 
<div class="form-style-2-heading"></div> 
<form action="" method="post"> 
<label> 
    <span>Container name 
    <span class="required">*</span> 
    </span> 
    <input type="text" class="input-field nameModif" value="" required/> 
</label> 
<label id="labelEnv"> 
    <span>Environment 
    </span> 
    <input type="text" class="input-field env"/><a class="removeField" aria-expanded="false"><i class="fa fa-times"></i></a> 
    <a class="addEnv" aria-expanded="false"><i class="fa fa-plus"></i></a> 
</label> 
</form> 
</div> 

回答

2

在某些情況下$(event.target)<i class="fa fa-times">並沒有上輸入。讓我們起牀父<label>然後在其中刪除兒童:

$(event.target).closest('label').children('input, .removeField').remove(); 

更新,如果你有幾個輸入,你只需要a之前刪除輸入:

var et = $(event.target); 
if (et.is('i')) et = et.parent('a'); 
et.prev('input').remove().end().remove(); 
+0

我可以有'N' ''字段,這就是爲什麼如果標籤中有多個輸入,我需要刪除那個' ' – Jerome

+0

之前的標籤,標籤將無法按預期工作。點擊標籤應該在鏈接的輸入上激發焦點事件。 –

+0