使用 jQuery 克隆元素的 IE7 和 8 问题



根据在下拉列表中选择的数字,我对IE的IE有一个问题。如果在下拉列表中选择了3,我想重复问题块并操纵名称属性,以使它们在每个块中都是唯一的。这在Chrome,FF等中很好地工作,但在IE7和IE8中不行。

编辑,事实证明它特定于IE7和IE8:这是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 class="questions_clonable hidden">

如果您只是使用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()当前不支持变更事件:目前不支持:Blur,Focus,MouseEnter,Mouseleave,更改,提交docs.jquery.com/events/live

您可以尝试使用LiveQuery吗?docs.jquery.com/plugins/livequery

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

最新更新