在my jsfiddle中,我试图通过调用以下函数将项目从高价格分类到低价格:
function myFunction() {
var elements = [].slice.call(document.getElementsByClassName("price"));
elements.sort(function(a, b) {
return parseFloat(b.innerHTML.substring(1)) - parseFloat(a.innerHTML.substring(1));
});
for (var i = 0; i < elements.length; i++)
elements[i].parentNode.appendChild(elements[i]);
console.log(elements);
}
我可以在console.log时看到它正常工作,但我无法将结果显示在屏幕上并更改项目的顺序。
我在this fiddle中看到下面的JavaScript,它有效,为什么不开采?
$(function() {
$(".offer_item").sort(function(a, b) {
var priceAText = $(a).find(".offer_price").text();
var priceBText = $(b).find(".offer_price").text();
var priceA = parseFloat(priceAText.substring(1, priceAText.length));
var priceB = parseFloat(priceBText.substring(1, priceBText.length));
return priceA > priceB;
}).each(function() {
$(this).appendTo(".offer_list");
});
});
答案 0 :(得分:1)
工作示例对文档中的项目进行排序。
您的代码会在文档之外创建一个数组elements
,并引用de document中的元素。然后,您可以对此数组进行排序,这根本不会更改您的文档。
执行elements[i].parentNode.appendChild(elements[i]);
时,element[i]
仍然是文档中元素的引用,.parentNode
也在文档中,因此您可以编辑文档。