2016-08-05 23 views
0

Ich habe den folgenden HTML-Code der TabelleGet ID aller Elemente in Datentabellen Tabelle

<div role="tabpanel" class="tab-pane fade col-sm-12" id="trainerList" style="max-width: 1000px;"> 
    <table id="trainerListTable" class="table table-condensed table-striped" style="width: 100%;"> 
     <thead> 
      <tr> 
       <th></th> 
       <th></th> 
       <th>Staff ID</th> 
       <th>Trainer</th> 
       <th>Team</th> 
       <th>Department</th> 
      </tr> 
     </thead> 
     <tbody id="listTemplateTbody"></tbody> 
    </table> 
</div> 

In meinem Rückgrat Initialize Funktion stelle ich einen Verweis auf meine Sammlung auf, die ein API-Aufrufe Daten aus der Datenbank zu erhalten. In diesem bestimmten Fall erhält es alle Zeilen in der Tabelle staff.

this.staff = options.staff; 

In meinem Rückgrat render Funktion habe ich den folgenden Code eine Datentabelle Tabelle zum Bestücken:

this.ui.listTemplateTbody.empty(); 

this.staff.each(function(template) { 
    var profileImg = template.get('PictureUri') || "/images/placeholderUser.png"; 
    self.ui.listTemplateTbody.append(self.listTabletpl({ 
     Index: template.get('Index'), 
     StaffId: template.get('Id'), 
     Forename: template.get('forename'), 
     Surname: template.get('surname'), 
     Team: template.get('Team') || "No Team", 
     Department: template.get('DepartmentId') || "No Department", 
     Image: '<img class="createImageTableIcon" src="' + profileImg + '" />' 
    })); 
}); 

this.staffTable = $('#trainerListTable').DataTable({ 
    "aLengthMenu": [ 
     [5, 10, 25, 50, -1], 
     [5, 10, 25, 50, "all"] 
    ], 
    "iDisplayLength": 10, 
    "order": [ 
     [2, "DESC"] 
    ], 
    "columnDefs": [{ 
     "orderable": false, 
     "targets": [0, 1] 
    }, { 
     "width": "5%", 
     "targets": 0 
    }, { 
     "width": "5%", 
     "targets": 1 
    }, { 
     "width": "10%", 
     "targets": 2 
    }, { 
     "width": "40%", 
     "targets": 3 
    }, { 
     "width": "20%", 
     "targets": 4 
    }, { 
     "width": "20%", 
     "targets": 5 
    }] 
}); 

In einer neuen Funktion, die ich die Index der einzelnen Elemente in listTemplateTbody erhalten können, will. Jede Hilfe würde sehr geschätzt werden.

createCourseTpl: function(e) { 
    //get id of each item here? 
} 

Antwort

2
$('#trainerListTable').each(function(index, domobj) { 
    //your logic 
}); 

Erläuterung:

Sie wählen Sie Ihre ID trainerListTable und durchlaufen die Kinder, wo wie angegeben Index die Anzahl der Iterationen gibt und auch Index des Elements von den Eltern und domobj ist das Kind selbst zum Beispiel für Index 0 thead wäre das dom-Element und so weiter, so dass Sie Ihre Logik schreiben können, welches Element zu manipulieren ist und welches nicht.

+0

Während dieses Code-Snippet die Frage lösen kann, [hilft eine Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, um die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erläuternden Kommentaren zu überladen, da dies die Lesbarkeit sowohl des Codes als auch der Erklärungen verringert! – FrankerZ

+0

Erweiterung hinzugefügt. – SiddP