Es klingt vielleicht komisch, aber im folgenden basiert table Ich muss alle Zeilen mithilfe von jQuery summieren. Ich verwende angularjs, um alle Benutzer aufzulisten, aber ich muss jede Zeile mit jQuery abrufen und dann die Summe aller anzeigen.Summieren von Tabellenzeilen, die mit AngularJS mithilfe von jQuery generiert wurden
Das einzige Problem ist, ich weiß nicht, wie man den Wert jeder Zeile erhält, um die Operation zu machen.
HTML
<div data-ng-app="app" data-ng-controller="controllerApp">
<table border="1">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="user in users">
<td>{{user.name}}</td>
<td class="sum">{{user.age}}</td>
</tr>
</tbody>
<tfoot>
<tr>
<td><strong>Sum</strong></td>
<td></td>
</tr>
</tfoot>
</table>
</div>
Javascript
$(function(){
function tally (selector) {
$(selector).each(function() {
var total = 0,
column = $(this).siblings(selector).andSelf().index(this);
$(this).parents().prevUntil(':has(' + selector + ')').each(function() {
total += parseFloat($('td.sum:eq(' + column + ')', this).html()) || 0;
})
$(this).html(total);
});
}
tally('td.total');
});
AngularJS
var app = angular.module("app", []);
app.controller("controllerApp", function($scope){
$scope.users = [
{name: "Marie", age: 24},
{name: "Andy", age: 26},
{name: "Peter", age: 21},
{name: "Elizabeth", age: 23},
{name: "Frank", age: 27},
{name: "Claire", age: 25}
]
});
Verwenden Sie jQuery oder eine DOM-Abfrage nicht, es zu tun ... verwenden, um die Javascript-Controller – Endless