Mit anderen Worten, ich habe eine Tabelle mit wenigen Zeilen, in jeder Zeile in der letzten Zelle habe ich ein Optionsfeld.
Wie bekomme ich Elternteil Zeile für ausgewähltes Optionsfeld?
Was ich probiert habe:
function getSelectedRowGuid() {
var row = $("#MwDataList > input:radio[@name=selectRadioGroup]:checked :parent tr");
var guid = GetRowGuid(row);
return guid;
}
Aber es scheint, als ob dieser Selektor falsch ist.
ShankarSangoli
Versuche dies.
Sie müssen dem Attributnamen kein Präfix voranstellen @ im jQuery-Selektor. Verwenden closest() -Methode, um das nächste übergeordnete Element zu erhalten, das dem Selektor entspricht.
closest() – Ruft das erste Element ab, das mit dem Selektor übereinstimmt, beginnend mit dem aktuellen Element und nach oben durch die DOM-Struktur.
Als Nebenbemerkung sollten die IDs der Elemente auf der Seite eindeutig sein, also vermeiden Sie es, dieselben IDs für Optionsfelder zu haben, die ich in Ihrem Markup sehen kann. Wenn Sie die IDs nicht verwenden möchten, entfernen Sie sie einfach aus dem Markup.
Überprüfen Sie dies .parent() Methode. Dies ist eine Alternative zu a .prev() und .next().
var $row = $(this).parent() // Moves up from <button> to <td>
.parent(); // Moves up from <td> to <tr>
Holen Sie sich alle Tabellenzellen <td>
var $row = $(this).closest("tr"), // Finds the closest row <tr>
$tds = $row.find("td"); // Finds all children <td> elements
$.each($tds, function() { // Visits every single <td> element
console.log($(this).text()); // Prints out the text within the <td>
});
var $row = $(this).closest("tr"), // Finds the closest row <tr>
$tds = $row.find("td:nth-child(2)"); // Finds the 2nd <td> element
$.each($tds, function() { // Visits every single <td> element
console.log($(this).text()); // Prints out the text within the <td>
});