This question already has answers here:
Get selected element's outer HTML
                                
                                    (29个答案)
                                
                        
                6年前关闭。
            
        

我正在使用jQuery对li标签列表进行排序,我当前的代码是:

var arr = [];
$("ul li").each(function() {
    arr.push($(this));
});
arr.sort(cmpFunction);
$("ul").find("li").remove();
$.each(arr, function(index, item){
    console.log(item.html());
});


我在console.log中发现的是-我正在丢失包含li标签的外部(带有我想保留的html5数据属性)

.html()还有另一种选择,它也会给我对象li标签

我在这里提供了一个简单的示例,说明了我的需求:http://jsbin.com/esalas/5

最佳答案

jQuery中没有内置函数可以执行此操作。解决方法是将元素包装在另一个元素中,然后获取该元素的html()

$.each(arr, function(index, item) {
    var html = item.wrap("<div></div>").parent().html();
    console.log(html);
});


您也可以还原到本机Javascript并使用outerHTML-尽管我尚未对此进行测试:

$.each(arr, function(index, item) {
    console.log(item[0].outerHTML);
});

09-16 17:48