我正在使用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
答案 0 :(得分:6)
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);
});