GOAL Rückkehr Return on Art gesamten Inhalt div class = "box"Auf sortieren gesamte DIV
Ich habe x 4 hat jedes DIV eine Variable "Objekt". Die Variable "Objekt" funktioniert gut, das Skript findet das Objekt 10 addiert und sortiert dann richtig. In diesem Beispiel gibt das Skript 20, 13, 11, 10 sortiert nach größer zurück, um korrekt zu senken. Ich muss den Inhalt der gesamten div class = "box", nicht nur das Objekt Element zurückgeben. ... 20 bbbb, 13 cccc, 11 aaaa, 10 dddd,
<!--CSS ===-->
<style type="text/css">
.box {
border: 1px solid #000;
padding: 2px;
margin: 2px;
}
</style>
<!--HTML ===-->
<div id="containerSort">
<div class="box">
<object>
001
</object>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>a</td>
<td>a</td>
<td>a</td>
<td>a</td>
</tr>
</table>
</div>
<div class="box">
<object>
10
</object>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>b</td>
<td>b</td>
<td>b</td>
<td>b</td>
</tr>
</table>
</div>
<div class="box">
<object>
03
</object>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>c</td>
<td>c</td>
<td>c</td>
<td>c</td>
</tr>
</table>
</div>
<div class="box">
<object>
0
</object>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>d</td>
<td>d</td>
<td>d</td>
<td>d</td>
</tr>
</table>
</div>
<div id="increase"></div>
</div>
<!--JS ===-->
<script type='text/javascript'>//<![CDATA[
$(document).ready(function() {
$("#increase").trigger("click");
});
// Assign function as eventListener
$("#increase").click(computeAndUpdateValue);
// Wrapper function
function computeAndUpdateValue() {
var valArr = getValues();
valArr = addNumber(valArr);
valArr = sortValues(valArr);
createAndRenderHTML(valArr, "#containerSort");
}
function getValues(){
var returnArray = [];
$("div.box").each(function(id, el) {
returnArray.push(parseInt($(el).text(), 10));
});
return returnArray;
}
function addNumber(arr) {
return arr.map(function(item) {
return parseInt(item, 10) + 10;
});
}
function sortValues(arr) {
return arr.sort(function(a, b) {
return a > b ? -1 : a < b ? 1 : 0
});
}
function createAndRenderHTML(arr, el) {
var _html = arr.map(function(item) {
return "<div class='box'> <object>" + item + "</object></div>"
}).join("");
$(el).html(_html);
}
//]]>
</script>
erstellen Array von Objekt statt nur Wert, siehe meine Antwort für Details –