傳遞的數據基於價值觀動態呈現的div排序我有一個dict
像這樣:試圖通過
choices = {'Mexico': 53, 'Panama': 1, 'Honduras': 8} // data passed through
HTML:
<div class="poll">
<div class="poll_div">
<h1><strong>Question?</strong></h1>
<form action="" method="post" class="poll_form"> <input type='hidden' name='csrfmiddlewaretoken' value='bMfVv1HAB9PcivrMZfP5dZddKCXt7xBCxv6WGHqpcw6cT1bNIfKjGPNIK74hGCkF' />
<div class="poll_choice_div">
<div class="poll_choice">
<input type="radio" name="choice" id="choice1"/>Mexico<br>
</div>
<div class="poll_choice">
<input type="radio" name="choice" id="choice2"/>Panama<br>
</div>
<div class="poll_choice">
<input type="radio" name="choice" id="choice3"/>Honduras<br>
</div>
</div>
<input type="submit" value="Vote" />
</form>
</div>
<div class="poll_results">
<div class="choice_result" data-choice_percent="14">
<p class="choice_result_text">Mexico</p>
<span>14%</span>
</div>
<div class="choice_result" data-choice_percent="24">
<p class="choice_result_text">Panama</p>
<span>24%</span>
</div>
<div class="choice_result" data-choice_percent="60">
<p class="choice_result_text">Honduras</p>
<span>60%</span>
</div>
<p class="total_votes">Total Votes: 0</p>
</div>
</div>
的jQuery(AJAX調用)
$('.poll_form').on('submit', function(e) {
e.preventDefault();
var $form = $(this);
...
$.ajax({
type: 'POST',
url: '/poll_answer/',
data: {
answer: choice,
question: question,
csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val(),
},
success: function (data) {
result = $form.parent().parent().find('.choice_result_text');
choices = data.choices; // {the dictionary}
$('.choice_result').each(function() { // Add value to choice
var key = $(this).find('.choice_result_text').text();
if (key in choices) {
$(this).find('.choice_result_text').next().text(choices[key] + '%');
}
}).sort(function(a, b) { // Now sort them
return choices[$(b).find('.choice_result_text').text()] - choices[$(a).find('.choice_result_text').text()];
}).appendTo('body');
$('.total_votes').html('Total votes: ' + data.total_votes)
}
})
});
目前所做的是將span
更改爲的val
0於choices
。這工作正常,但我想根據val
(按降序排列)對div進行排序。所以相反,div應該排序爲Mexico, Honduras, Panama
。由於沒有辦法對dictionaries
進行排序,我需要找到另一種方法來執行此操作。
鍵的對象文本的順序並不所以你需要以另一種方式定義順序(提示,使用一個數組) – Phil
這就是我所問的,有人使用這種方法,但使用數組。我嘗試了自己並奮鬥。 – Zorgan