Hallo,
Es ist nicht ersichtlich, was du brauchst. Ein Objekt, die Zeilennummer, beides?
genau das hatte ich schon mehrmals beantwortet
Ich benötige nicht das Objekt, ich benötige die Stelle an der, der tr Tag ist
Nochmals
wenn ich einen Aufbau habe wie folgt und ich alle tr Kindelemente suche
<div id=box-1>
<table>
<tbody>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td><input type=radio name=findemich></td><td><input type=text name=testname></td></tr> //den suche ich ich
<tr><td>irgendwas</td></tr>
<tr><td>irgendwas</td></tr>
<tr><td>irgendwas</td></tr>
</tbody>
</table>
</div>
was ist daran unklar ?
Lasse ich mir die Anzahl der Kindelemente ausgeben erhalte ich 7 zumindest gibt mir das
$('#box-'+TypeId +' tbody tr' ).length;
aus.
mit
var week = $('#box-'+TypeId +' tbody tr' ).length - 3;
var name = "testname";
$("#box-"+TypeId+" tbody tr:nth-child("+week+") input[name='"+name+"']").prop('disabled', true);
disable ich in child 2 das Textfeld mit dem Namen "testname".
da in diese Tabelle nicht nur einzelne Zeilen nachgeladen werden sondern auch Verschachtelungen
wie z.B. eine weitere Tabelle in einer Zeile
z.B. so
<div id=box-1>
<table>
<tbody>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td><input type=radio name=findemich></td><td><input type=text name=testname></td></tr> //den
<tr><td>
<table>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
</td></tr>
suche ich ich
<tr><td>irgendwas</td></tr>
<tr><td>irgendwas</td></tr>
<tr><td>irgendwas</td></tr>
</tbody>
</table>
</div>
dann erhalte ich mit
var week = $('#box-'+TypeId +' tbody tr' ).length - 6;
var name = "testname";
$("#box-"+TypeId+" tbody tr:nth-child("+week+") input[name='"+name+"']").prop('disabled', true);
Lade ich jetzt nochmals eine Zeile dazu
fängt das Problem an, da er die Angabe des Child (siehe oben Punkt1 )die ich mache, nicht mehr findet
<div id=box-1>
<table>
<tbody>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td><input type=radio></td><td><input type=text></td></tr>
<tr><td>
<table>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
</table>
</td></tr>
<tr><td><input type=radio name=findemich></td><td><input type=text name=testname></td></tr> //den
suche ich jetzt
<tr><td>irgendwas</td></tr>
<tr><td>irgendwas</td></tr>
<tr><td>irgendwas</td></tr>
</tbody>
</table>
</div>
Da nun 10 Childs vorhanden sind und ich wieder einfach 3 abziehen müsste um das 7. Childelement zu finden , müsste er eigentlich die richtige Zeile also das richtige Child finden.
Geht aber nicht.
Da du verschachtelte Tebellen benutzt, ist auch unklar ob die radio-Buttons sich nur auf der ersten Tabellen-Ebene befinden, oder auch hier eine Verschachtelung möglich ist. Die Frage ist, was dann ausgegeben werden soll.
Wurde das oben nun klarer?
was ist daran so missverständlich?
Meine Denkweise geht dahin.
wenn ich mir mit jQuery die Anzahl der Childs ausgeben lasse so hoffe ich mal das jQuery diese auch sauber ermittelt.
Wenn mir 10 ausgegeben werden und ich mir anschliessend den Quellcode ansehe, so kann ich auch nur 10 tr-tags finden. Also vermute ich das dies richtig ist.
Wenn ich dann noch sehe das meine gesuchte Zeile also mein gesuchtes Child an der 7. Stelle ist, frage ich mich wieso jQuery dann diese Zeile nicht mehr findet wenn ich von 10 3 abziehe und mit
// week bedeutet hier eigentlich das child !!!
$("#box-"+TypeId+" tbody tr:nth-child("+week+") input[name='"+name+"']").prop('disabled', true);
Frage:
ist es richtig, das man unter javascript zwar das erste Child, das letzte, die Azahl der Childs ermitteln kann, jedoch man nicht ermitteln kann das wievielte Child-Element es ist, wo gerade ein Radio angeklickt wurde?
Das würde mich fast wundern wenn das so wäre.
Grüße