jQuery .clone()和Microsoft Explorer(bug?)

sup*_*led 4 jquery internet-explorer

我在使用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;
    });
});
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Microsoft浏览器无法复制多个克隆,也不会设置(css)新元素的样式.

请告诉我IE友好的替代方案!谢谢.

Pao*_*ino 5

你不能/不应该没有<li>父母的元素<ul>.此外,你不能/不应该有你喜欢的<div>元素<li>.最后,您id在HTML中具有正在克隆的属性,这将导致具有相同的重复元素id.如果你替换外部originaldiv并使它成为a <ul>,去除id属性并使它成为一个class,它应该没问题.

所有这一切,它在IE7上对我有用.

编辑

回应你的评论:

要仅选择第一个,请执行此操作(假设它具有一个类fields):

$('ul.fields').eq(0).clone();
Run Code Online (Sandbox Code Playgroud)