Dưới đây là các tùy chọn khác nhau cho việc này:
Đầu tiên : không có jQuery:
var lis = document.querySelectorAll('ul > li');
var contents = [].map.call(lis, function (li) {
return li.innerHTML;
}).reverse().forEach(function (content, i) {
lis[i].innerHTML = content;
});
... và với jQuery:
Bạn có thể sử dụng điều này:
$($("ul > li").get().reverse()).each(function (i) {
$(this).text( 'Item ' + (++i));
});
Demo tại đây
Một cách khác , sử dụng jQuery cũng ngược lại là:
$.fn.reverse = [].reverse;
$("ul > li").reverse().each(function (i) {
$(this).text( 'Item ' + (++i));
});
Bản demo này ở đây .
Một cách khác là sử dụng length
(số phần tử khớp với bộ chọn đó) và đi xuống từ đó bằng cách sử dụng index
mỗi lần lặp. Sau đó, bạn có thể sử dụng này:
var $li = $("ul > li");
$li.each(function (i) {
$(this).text( 'Item ' + ($li.length - i));
});
Bản demo này tại đây
Một , nhiều loại liên quan đến một ở trên:
var $li = $("ul > li");
$li.text(function (i) {
return 'Item ' + ($li.length - i);
});
Demo tại đây
<li>Item 5</li>
có chỉ số là 0.