IE7& 8使用jQuery克隆元素问题

时间:2012-11-07 10:00:57

标签: jquery internet-explorer

根据下拉列表中选择的数字,我在IE中遇到了一个克隆表单元素块的问题。如果在下拉列表中选择了3,我想重复问题块并操纵名称属性,以使它们对每个块都是唯一的。这适用于Chrome,FF等,但不适用于IE7和IE8。

编辑,结果证明它特定于IE7和IE8:here's a jsfiddle

这是我的代码,我正在做的事情IE已知有问题吗?目前发生的所有情况都是IE显示“null”而不是应该出现的每个块。谢谢你的帮助。

    // Dropdown select
    $('#quantity').live("change", function(){

        $('.questions_clonable:not(:first)').remove();

        // Get value of selection
        var num = $(this).val();

        var cloned_el = $('.questions_clonable').clone();   

        if (num > 1)
        {  
            for (var i = 1; i < num; i++)
            {
                // Assign cloned block to new var
                var new_block = cloned_el;  

                // Bit of a workaround needed to clone properly, reiterating class name
                $('.multiple_questions_container').append('<span class="questions_clonable hidden">'+new_block.html()+'</span>');

            }   
        }
    });

表单元素包含在span中,如下所示:

<span class="questions_clonable hidden">

1 个答案:

答案 0 :(得分:0)

如果您只是使用cloned_el来获取html,为什么不使用

var cloned_el = $('.questions_clonable').clone();   

然后

var new_block = cloned_el;

只需调用new_block.html(),就可以执行此操作:

var new_block_html = $('.questions_clonable').html(); 

然后你可以引用new_block_html。

如果您也可以发布您的标记,那么它可能有所帮助,因为很明显,如果有任何ID,这将导致一些错误。

$。live()目前不支持更改事件: 目前不支持:模糊,焦点,鼠标中心,鼠标离开,更改,提交docs.jquery.com/Events/live

您是否可以尝试使用livequery? docs.jquery.com/Plugins/livequery

编辑 - 或者尝试使用.on()事件而不是.live(),demo