我在使用Microsoft Explorer 6/7和jQuery“clone”功能时遇到了一些问题。我正在使用的jQuery是:
$(function() {
$('#addFields').click(function() {
var newCredit = $('#original').clone(); // create new set
newCredit.find('input').val(''); // empty input fields
$(this).before(newCredit); // append at the end
return false;
});
});
html表单如下所示:
<div id="original">
<li id="prodEnt" >
<label class="description" for="entity[]">Entity </label>
<div>
<input name="entity[]" class="element text medium" type="text" value="" />
</div>
</li>
<li id="entFunc" >
<label class="description" for="element_5">Function </label>
<div>
<input name="function[]" class="element text medium" type="text" value="" />
</div>
</li>
<li class="section_break_small"></li>
</div>
Microsoft浏览器无法复制多个克隆,也不会设置(css)新元素的样式。
请告诉我IE友好的替代方案!感谢。
答案 0 :(得分:5)
如果没有父<li>
,您不能/不应该有<ul>
个元素。此外,您不能/不应该像<div>
一样拥有<li>
元素。最后,您在克隆的HTML中有id
个属性,这将导致重复的元素具有相同的id
。如果您替换外部original
div并将其设为<ul>
,请删除id属性并将其设为class
,它应该没问题。
所有这一切,it does work for me on IE7。
修改强>
回应你的评论:
要仅选择第一个,请执行此操作(假设它具有fields
类):
$('ul.fields').eq(0).clone();