2017-04-16 15 views
3

私はウェブサイトからさまざまな製品を注文しようとしていますが、正しく行うことはできません。商品の価格順に並べる

基本的に私はそれぞれの価格を取得し、最も高価なものから最低のものへと注文する必要があります。

私は、次のコードを試みたが、それはすべてを消滅し、正しい方法でそれらを注文しませ保つ:

var divList = $(".block-level.h2"); 
divList.sort(function(a, b){ 
    return $(a).data(".block-level.h2")-$(b).data(".block-level.h2") 
}); 
$(".grid").html(divList); 

それがコードIで行う必要がありますので、私はHTMLを変更するアクセス権を持っていません今はjQueryでのみ追加できます。

誰かに私に助言をしたり、助けてくれますか?

ありがとうございます。

答えて

1

商品のグリッドアイテムを並べ替えることをご希望の場合は、jQueryコードをご利用ください。

var values = []; 
$('.block-level.h2').each(function() { 
    var temp = Array(); 
    temp['value'] = parseInt($(this).html().replace('$','')); 
    temp['element'] = $(this).closest('.grid-item'); 
    values.push(temp); 
}); 
values.sort(function(a,b) { return b.value - a.value; }); 
var sortedHtml = ''; 
$.each(values, function(index, obj) { 
    if((index+1)%3==1) { 
     sortedHtml+=('<div class="grid product-cards__row"><div class="grid-item one-third palm-one-whole product-cards__item">'+$(obj.element).html()+'</div>'); 
    } else if((index+1)%3==0) { 
     sortedHtml+=('<div class="grid-item one-third palm-one-whole product-cards__item">'+$(obj.element).html()+'</div></div>'); 
    } else { 
     sortedHtml+=('<div class="grid-item one-third palm-one-whole product-cards__item">'+$(obj.element).html()+'</div>'); 
    } 
}); 
$('.product-cards').html(sortedHtml); 

これが役に立ちます。

+0

うわー、それはすばらしいやり方で、すごくありがとう@Shekhar Chikara、本当に貴重な助けに感謝します! – Cloud

+0

@Cloudお手伝いをしてうれしい! –

1

あなたは上記のコードで

var values = Array(); 
$('.block-level.h2').each(function() { 
    values.push(parseInt($(this).html().replace('$',''))); 
}); 
values.sort(function(a, b){return b-a}); 

次コード - ことによって、これを達成することができます - 主な問題は、その存在しない要素aで名前data-.block-level.h2を持つ属性を検索しようとしているので$(a).data(".block-level.h2")です。それが空の結果をもたらすのです。

+0

@Shekhar Chikaraさん、ありがとうございます。もう1つ質問してもらえますか?私は、デザインで順番に表示されるように製品を移動しようとしていますが、これをどのように適用できますか? – Cloud

+0

ええ、ページにある順序を保持したい場合は、 'sort'関数を適用する前に' values'配列を保持するだけです。それは元のシーケンスを持つでしょう。 –

+0

返信いただきありがとうございます。ご迷惑をおかけして申し訳ございません。 すべての注文が最大から最小になると、ウェブサイトに表示されている実際のパッケージを取り除き、注文した後に新しい注文を表示して注文する必要があります。今すぐあなたのコードをコンソールで順番に見ていますが、デザイン内の製品を移動するためにそれを変更しようとすると、私はそれを得ていません。 もう一度、ありがとうございます! – Cloud

関連する問題