jQuery用另一个元素标记替换匹配的元素

时间:2013-04-30 14:19:00

标签: jquery replacewith

我将特色图片包装在图形元素中。但是,IE8无法正确识别图形元素并使我的图像浮现。所以,我正在尝试使用jQuery来检测IE8并用一个简单的div元素替换figure元素。

这是我的测试jQuery:

jQuery('.entry figure.figureFeatured').replaceWith(
    jQuery('<div/>').html(
        jQuery('.entry figure.figureFeatured').html()
        )
    );

它工作正常,除了原始的数字元素的属性不再附加到被替换的div元素(根据chrome的检查员)

1 个答案:

答案 0 :(得分:0)

使用以下代码复制属性......

jQuery('.entry figure.figureFeatured').replaceWith(
    var $div=jQuery('<div/>');
    $div.html( jQuery('.entry figure.figureFeatured').html() )
     $div.attr(jQuery('.entry figure.figureFeatured').getAttributes());
    );

您需要将getAttributes函数添加到Jquery,如下所示

(function($) {
    $.fn.getAttributes = function() {
        var attributes = {}; 

        if( this.length ) {
            $.each( this[0].attributes, function( index, attr ) {
                attributes[ attr.name ] = attr.value;
            } ); 
        }

        return attributes;
    };
})(jQuery);