我使用添加按钮创建了一个动态表单,该按钮使用表单的克隆创建了一个新的部门,但具有不同的ID。但是,我还希望每个分区都有一个删除按钮,以删除它所在的分区,包括按钮本身。
我熟悉JQuery .remove()
方法,但是在选择按钮所在的分区时遇到麻烦。
<div id="attendees">
<div id="att1" class="attendee">
<form name="droplist" action="html_form_action.asp" method = "get">
<fieldset>
<legend><span class="legend">Filter</span></legend>
<label for="select">Category: </label>
<select id="select" size="1" >
<option value=" " selected="selected"> </option>
<option value="employees">Number of Employees</option>
<option value="hits">Hits on TechCrunch</option>
<option value="time_founded">Time Founded</option>
<option value="total_money">Total Money</option>
</select>
<div id='radioContainer' style="display:block;">
<input type="radio" id="condition" name="button" value="more"/> <label for="condition"> > </label></br>
<input type="radio" id="condition1" name="button" value="less"/> <label for="condition1"> < </label>
</div>
<div id='radioContainerTime' style="display:block;">
<input type="radio" id="condition2" name="button" value="later"/> <label for="condition"> After </label></br>
<input type="radio" id="condition3" name="button" value="earlier"/> <label for="condition1"> Before </label>
</div>
<div id = "text_box" style="display:block;">
<label for="input_value">Amount: </label>
<input type="text" id="box" name="input_value" value="textIn" />
</div>
<button>remove</button>
</fieldset>
</form>
</div>
<a href="#" class="add">Add more</a>
</div>
到目前为止,我的JavaScript是这样的:
$(function(){
var template = $('#attendees .attendee:first').clone(),
attendeesCount = 1;
var addAttendee = function(){
attendeesCount++;
var attendee = template.clone().find(':input').each(function(){
var newId = this.id.substring(0, this.id.length-1) + attendeesCount;
$(this).prev().attr('for', newId); // update label for (assume prev sib is label)
this.name = this.id = newId; // update id and name (assume the same)
}).end() // back to .attendee
.attr('id', 'att' + attendeesCount) // update attendee id
.prependTo('#attendees'); // add to container
};
$('.add').click(addAttendee); // attach event
});
$("button").click(function () {
$this.remove();
});
最佳答案
要删除包含按钮的<div class="attendee">
,您可以使用以下命令:
$("button").click(function () {
$(this).closest(".attendee").remove();
return(false);
});
这将从单击的按钮中查找父链,以找到带有
class="attendee"
的第一部分,然后将其删除。仅供参考,我强烈建议在您的删除按钮上放置一个类,因为在页面上挂接所有按钮有些危险。
要将一个类放在您的删除按钮上,请将HTML更改为此:
<button class="deleteButton">remove</button>
并且,将jQuery更改为:
$(".deleteButton").click(function () {
$(this).closest(".attendee").remove();
return(false);
});
return(false)
防止基于单击发生表单中的任何默认操作。