HTML表單:刪除輸入元素的父元素提供
<span id="contactSpan" class="repeatEntry">
<ul>
<div id="contactSpan-1" class="subSpan-1">
<li>
<input type="text" id="contactname-1" name="contactname-1" class="contactname" title="Enter your Full Name" value="<?php echo $_POST['contactname']?>"/>
</li>
<li>
<input id="contactemail-1" type="email" name="contactemail-1" class="contactemail" title="Enter your email address" value="<?php echo $_POST['contactemail']?>"/>
</li>
<li>
<input id="contactmobile-1" type="tel" name="contactmobile-1" class="contactmobile" value="<?php echo $_POST['contactmobile']?>"/>
</li>
<li>
<input type="button" class="remove-this-button" style="display:None" id="remove-this-button-1" name="remove-this-button-1" value="Remove contact">
</li>
</div>
</ul>
</span>
<input type="button" class="addMore" id="addContact" name="addContact" value="Add another contact">
我試圖克隆完整< DIV>類。我可以克隆它。最初,「刪除聯繫人」按鈕不會被顯示,但是在克隆元素中它將被顯示。
「刪除聯繫人」對我不起作用,點擊此按鈕,我正在嘗試刪除已克隆的整個父級< div> class。
代碼示例:
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
var idIncrement = 1;
$(function() {
//remove div class function -- not Woking
function removeDiv(){
alert("check123");
$(this).parent('div').remove();
}
// cloning the entire contact "div" -- Working
$('input.addMore').on('click', function() {
idIncrement++;
var $table = $('#contactSpan');
var $tr = $table.find('div').eq(0).clone();
$tr.appendTo($table).find('input').val('');
$tr.appendTo($table).find(".remove-this-button").removeAttr("style");
$tr.appendTo($table).find(".remove-this-button").attr("value", "Remove Contact").on("click", removeDiv);
$tr.appendTo($table).find(".remove-this-button").attr("name","remove-this-button-"+idIncrement);
$tr.appendTo($table).find(".remove-this-button").attr("id","remove-this-button-"+idIncrement);
});
});
</script>
它能夠從刪除按鈕刪除樣式屬性,並點擊它也調用函數removeDiv。警報在removeDiv函數上觸發。 但是隻有刪除()部分不起作用。
父()只檢查對於一個級別的祖先,你需要使用最接近的(),如mplungjan的答案。 –
請注意,您的HTML標記無效,DIV不能是UL元素 –