【发布时间】:2014-04-02 17:25:14
【问题描述】:
我正在尝试克隆一个 div(多次)并添加增量,以便我可以使用 XML 将结果解析到数据库中。我只想克隆表单部分而不是输入的数据。我正在克隆的 div 有 3 个选择和 2 个单选(添加时所有这些都需要为空)。
HTML
<div id="Template1" class="template">
<div class="_100">
<div class="_25"> <fieldset>
<label class="label_analysis" for="analysis">Analyte:</label>
<select class="select_analyte" name="analysis" id="analysis">
<option value="">Select</option>
<option value="TN">TN</option>
<option value="TP,NO2+3">TP,NO2+3</option>
</select> </fieldset></div>
<div data-role="controlgroup" class="_13">
<label><input type="checkbox" data-mini="true" name="Filtered" id="Filtered" value="True">
0.45u Filtered</label>
<label><input type="checkbox" data-mini="true" name="Dup" id="Dup" value="True">
Field Dup</label></div>
<div class="_25"><fieldset>
<label class="label_preserve" for="preserve">Preserved</label>
<select class="select_preserve" name="preserve" id="preserve">
<option value="">Select</option>
<option value="HNO3">HNO₃</option>
<option value="H2SO4">H₂SO₄</option>
</select></fieldset></div>
<div class="_20"> <fieldset>
<label class="label_cool" for="cool">Cooled</label>
<select class="select_cool" name="cool" id="cool">
<option value="">Select</option>
<option value="Ice">Ice</option>
<option value="Frozen">Frozen</option>
<option value="None">None</option>
</select>
</fieldset></div>
<div class="_13">
<a href="#" type="button" data-theme="e" data-mini="true" data-icon="add" title="Duplicate" class="showNew">Add Analyte</a>
<a href="#" type="button" data-theme="e" data-mini="true" data-icon="delete" title="Remove" class="removeNew">Remove</a></div>
</div>
</div>
<div id="place" class="place"></div>
我尝试了两种不同的脚本
这个脚本的工作原理是我想隐藏原始 div 上的删除按钮,只让它出现在克隆的上,但它不会增加。
(function($){
var Template = $('.Template');
var count = 0;
$('.removeNew').hide().on('click', function(e) {
e.preventDefault();
$(this).closest('.Template').remove();
});
$('a.showNew').on('click', function(e) {
e.preventDefault();
var clone = Template.clone(true, true).insertAfter("#place").find('.removeNew').show().end();
});
})(jQuery);
这个增加但不隐藏删除按钮
$('#showNew').click(function() {
var num = $('.template').length,
newNum = new Number(num + 1),
newElem = $('#Template' + num).clone(true, true).attr('id', 'Template' + newNum).appendTo('#place');
newElem.find('.analysis').attr('id', 'ID' + newNum + '_analysis').attr('name', 'ID' + newNum + '_analysis').val();
newElem.find('.preserve').attr('id', 'ID' + newNum + '_preserve').attr('name', 'ID' + newNum + '_preserve').val();
newElem.find('.cool').attr('id', 'ID' + newNum + '_cool').attr('name', 'ID' + newNum + '_cool').val();
$('#Template'+ num).after(newElem);
});
})
我想知道是否有某种方法可以将它们结合起来......
我也有问题,因为无论我尝试什么,原来的 div 都变成了克隆,带有删除按钮,而应该是原来的 div 可以更改。
【问题讨论】:
-
我强烈建议您使用一致的制表符等清理代码,以便更清楚发生了什么。制作一个 jsfiddle 以便其他人可以编辑您的代码也是一个好主意。
-
我找到了你started,但你必须自己清理它。
标签: jquery-mobile