检索对象自己的标记

时间:2012-03-28 10:26:45

标签: javascript jquery

我正在使用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

1 个答案:

答案 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);
});