2016-05-25 4 views
0

Angenommen, ich habe eine Tabelle mit trs und in jeder Zeile habe ich tds. Ich möchte mit jquery selector das dritte Kind auswählen. Ich weiß, dass ich etwas Hässliches wie "$ ($ (d) .children() [3]) machen kann;", aber ich bevorzuge stattdessen 'eq' oder zumindest etwas lesbareres.Lesbarer Weg, um Kind in einem iterierten Array auszuwählen

Im Moment sieht es wie folgt aus:

_.each($('tr'), function(d,i){ 
       var td = $($(d).children()[3]); 
       . 
       . 
       rest of my code... 
      }) 

Irgendwelche Ideen?

Antwort

1

können Sie verwenden:

$.each($('tr'), function(d,i) { 
    $(this).find('td:eq(2)'); 
}); 

Beachten Sie, dass das erste Kind ist eq(0), so dass der dritte ist eq(2)

Als Alternative Sie diesen Selektor verwenden können:

$('tr td:nth-child(3)') 
+0

und kann ich tun etwas wie: if ($ ('tr td: nth-child (3)'). text() == "blabla") {... und es wird auf dem Array iterieren (wenn es eins ist)? – Joe

+0

Sie könnten '$ (" tr td: nth-child (3): enthält ('blabla') ")' verwenden. Dadurch werden alle Tabellenzellen ausgewählt, die den Text "blabla" enthalten. Wenn Sie nur wissen wollen, ob es eine Zelle gibt, die "blabla" enthält, benutzen Sie '$ (" tr td: nth-child (3): enthält ('blabla') "). Length ', dies gibt die Anzahl der Zellen an (oder null, wenn keine) – LinkinTED